<h1>Ejscript API Native API</h1>
<a name="Extensions"></a><h1>Extensions</h1>
  <table class="apiIndex" title="Extensions">
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs" class="nameRef">Ejs</a></td>
<td class="apiBrief">Ejsript VM Structure.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_array" class="nameRef">EjsArray</a></td>
<td class="apiBrief">Array class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_block" class="nameRef">EjsBlock</a></td>
<td class="apiBrief">Block class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_boolean" class="nameRef">EjsBoolean</a></td>
<td class="apiBrief">Boolean class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_byte_array" class="nameRef">EjsByteArray</a></td>
<td class="apiBrief">ByteArray class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_cache" class="nameRef">EjsCache</a></td>
<td class="apiBrief">EjsCache.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_cmd" class="nameRef">EjsCmd</a></td>
<td class="apiBrief">Cmd class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_date" class="nameRef">EjsDate</a></td>
<td class="apiBrief">Date class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_error" class="nameRef">EjsError</a></td>
<td class="apiBrief">Error classes.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_file" class="nameRef">EjsFile</a></td>
<td class="apiBrief">File class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_file_system" class="nameRef">EjsFileSystem</a></td>
<td class="apiBrief">FileSystem class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_frame" class="nameRef">EjsFrame</a></td>
<td class="apiBrief">Frame record.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_function" class="nameRef">EjsFunction</a></td>
<td class="apiBrief">Function class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_http" class="nameRef">EjsHttp</a></td>
<td class="apiBrief">Http Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_http_server" class="nameRef">EjsHttpServer</a></td>
<td class="apiBrief">HttpServer Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_iterator" class="nameRef">EjsIterator</a></td>
<td class="apiBrief">Iterator Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_module" class="nameRef">EjsModule</a></td>
<td class="apiBrief">Module control structure.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_name" class="nameRef">EjsName</a></td>
<td class="apiBrief">Qualified name structure.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_namespace" class="nameRef">EjsNamespace</a></td>
<td class="apiBrief">Namespace Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_null" class="nameRef">EjsNull</a></td>
<td class="apiBrief">Null Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_number" class="nameRef">EjsNumber</a></td>
<td class="apiBrief">Number class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_obj" class="nameRef">EjsObj</a></td>
<td class="apiBrief">Base object from which all objects inherit.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_path" class="nameRef">EjsPath</a></td>
<td class="apiBrief">Path class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_pool" class="nameRef">EjsPool</a></td>
<td class="apiBrief">Cached pooled of virtual machines.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_pot" class="nameRef">EjsPot</a></td>
<td class="apiBrief">Object with properties Type.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_reg_exp" class="nameRef">EjsRegExp</a></td>
<td class="apiBrief">RegExp Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_request" class="nameRef">EjsRequest</a></td>
<td class="apiBrief">Request Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_session" class="nameRef">EjsSession</a></td>
<td class="apiBrief">Session Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_socket" class="nameRef">EjsSocket</a></td>
<td class="apiBrief">Socket Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_string" class="nameRef">EjsString</a></td>
<td class="apiBrief">String Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_timer" class="nameRef">EjsTimer</a></td>
<td class="apiBrief">Timer Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_type" class="nameRef">EjsType</a></td>
<td class="apiBrief">Type class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_uri" class="nameRef">EjsUri</a></td>
<td class="apiBrief">Uri class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_void" class="nameRef">EjsVoid</a></td>
<td class="apiBrief">Void class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_web_socket" class="nameRef">EjsWebSocket</a></td>
<td class="apiBrief">WebSocket Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_worker" class="nameRef">EjsWorker</a></td>
<td class="apiBrief">Worker Class.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___ejs_x_m_l" class="nameRef">EjsXML</a></td>
<td class="apiBrief">XML and XMLList class.</td></tr>
</table>
<a name="Functions"></a><h1>Functions</h1>
  <table class="apiIndex" title="Functions">
<tr class="apiDef"><td class="apiType">int</td><td><a href="#ejscript_8h_1a12311560719257ba7f60b41067335040" class="nameRef">EJS_MAKE_VERSION</a>(int maj, int min, int patch)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Make an integer version number.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_type" class="ref">EjsType*</a></td><td><a href="#ejscript_8h_1a4f3584893b20886cb9170953d333c60f" class="nameRef">EST</a>(void *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Special type.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#ejscript_8h_1aa3c96f914f195c36649bf0bb858bfb70" class="nameRef">ESV</a>(void *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get immutable special value.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#struct_ejs_ex" class="ref">EjsEx*</a></td><td><a href="#group___ejs_function_1gab324330507f71d03691a7ef1bf36e6a6" class="nameRef">ejsAddException</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, <a href="osdep.html#osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14" class="ref">uint</a> tryStart, <a href="osdep.html#osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14" class="ref">uint</a> tryEnd, struct EjsType *catchType, <a href="osdep.html#osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14" class="ref">uint</a> handlerStart, <a href="osdep.html#osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14" class="ref">uint</a> handlerEnd, int numBlocks, int numStack, int flags, int preferredIndex)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an exception record.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="nameRef">ejsAddImmutable</a>(struct Ejs *ejs, int slotNum, <a href="#group___ejs_name" class="ref">EjsName</a> qname, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an immutable reference.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="nameRef">ejsAddItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *item)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an item to the array.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1ga231549943b24efd03baa0c14b8187d55" class="nameRef">ejsAddObserver</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> **emitterPtr, <a href="#group___ejs_obj" class="ref">EjsObj</a> *name, struct EjsFunction *observer)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an observer.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="nameRef">ejsAlloc</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> extra)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Allocate a new variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs" class="ref">Ejs*</a></td><td><a href="#group___ejs_pool_1gaffed175527ef9de7fbc2f75b441ea9da" class="nameRef">ejsAllocPoolVM</a>(<a href="#group___ejs_pool" class="ref">EjsPool</a> *pool, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Allocate a VM from the pool.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="nameRef">ejsAppendArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *dest, <a href="#group___ejs_array" class="ref">EjsArray</a> *src)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Append an array.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="nameRef">ejsAppendAttributeToXML</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *parent, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *attribute)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Append an attribute.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_x_m_l" class="ref">EjsXML*</a></td><td><a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="nameRef">ejsAppendToXML</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *dest, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *node)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Append a node.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="nameRef">ejsAtoi</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, int radix)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Parse a string and convert to an integer.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="nameRef">ejsBindAccess</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, void *getter, void *setter)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Bind a native C functions to method accessors.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="nameRef">ejsBindConstructor</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *type, void *constructor)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Bind a constructor.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="nameRef">ejsBindFunction</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, void *fun)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Bind a native C function to a function property.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="nameRef">ejsBindMethod</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, void *fn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Bind a native C function to a method property.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="nameRef">ejsBlendObject</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *dest, <a href="#group___ejs_obj" class="ref">EjsObj</a> *src, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Blend objects.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1ga80b979e0f3538b195f20eecd30cfaf66" class="nameRef">ejsBlockGC</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Block garbage collection.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_cache_1gaa69aed6d67365a635b0ba749c9296d25" class="nameRef">ejsCacheExpire</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, struct EjsDate *when)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Expire a cache item.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_cache_1ga17fd2083e394298c21002acc1a9ba10b" class="nameRef">ejsCacheRead</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read an item from the cache.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_cache_1ga3feb86bba6bd8209e75ca2720afda791" class="nameRef">ejsCacheReadObj</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read an object from the cache.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_boolean" class="ref">EjsBoolean*</a></td><td><a href="#group___ejs_cache_1gab8c6645f302eb7f4156c7bf719e43ec4" class="nameRef">ejsCacheRemove</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read an item from the cache.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_cache_1ga17a4f1f2a5e1d4c7a503485455a89f3b" class="nameRef">ejsCacheSetLimits</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, <a href="#group___ejs_obj" class="ref">EjsObj</a> *limits)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the cache limits.</td></tr>
<tr class="apiDef"><td class="apiType">struct EjsNumber*</td><td><a href="#group___ejs_cache_1gafbe3a6a9d48c07397947ebf4e36e2284" class="nameRef">ejsCacheWrite</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, struct EjsString *value, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write an item to the cache.</td></tr>
<tr class="apiDef"><td class="apiType">struct EjsNumber*</td><td><a href="#group___ejs_cache_1gaa378ab9b39d5251c1d003a4931ebb5f2" class="nameRef">ejsCacheWriteObj</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *value, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write an object to the cache.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_array" class="ref">EjsArray*</a></td><td><a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="nameRef">ejsCaptureStack</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int skip)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Capture the execution stack.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="nameRef">ejsCast</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, void *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Cast the object to the given type name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="nameRef">ejsCastType</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, struct EjsType *type)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Cast a variable to a new type.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="nameRef">ejsCheckSlot</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj, int slotNum)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Check the slot.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="nameRef">ejsClearArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clear an array and remove all items.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="nameRef">ejsClearException</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clear an exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="nameRef">ejsClone</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clone a variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_array" class="ref">EjsArray*</a></td><td><a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="nameRef">ejsCloneArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clone an array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_function" class="ref">EjsFunction*</a></td><td><a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="nameRef">ejsCloneFunction</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, int deep)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clone a function.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_http_server" class="ref">EjsHttpServer*</a></td><td><a href="#group___ejs_http_server_1gab1aadc348f8ffa4c6ed2e90e78e681bb" class="nameRef">ejsCloneHttpServer</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_http_server" class="ref">EjsHttpServer</a> *server, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clone a http server.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="nameRef">ejsClonePot</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *src, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Copy an object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_request" class="ref">EjsRequest*</a></td><td><a href="#group___ejs_request_1ga1f8c776a032ffd7b147cbb0dc094c2e7" class="nameRef">ejsCloneRequest</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_request" class="ref">EjsRequest</a> *req, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clone a request into another interpreter.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs" class="ref">Ejs*</a></td><td><a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="nameRef">ejsCloneVM</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clone an ejs virtual machine.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="nameRef">ejsCoerceOperands</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *lhs, int opcode, <a href="#group___ejs_obj" class="ref">EjsObj</a> *rhs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Cast the operands as required by the operation code.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="nameRef">ejsCompactPot</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Compact an object.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="nameRef">ejsCompareAsc</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s2)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Compare a string with a multibyte string.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="nameRef">ejsCompareString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="#group___ejs_string" class="ref">EjsString</a> *s2)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Compare two strings.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="nameRef">ejsCompareSubstring</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="#group___ejs_string" class="ref">EjsString</a> *s2, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> offset, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Compare a substring.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="nameRef">ejsCompareWide</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *s2, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Compare a string with a wide string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_type" class="ref">EjsType*</a></td><td><a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="nameRef">ejsConfigureType</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *type, struct EjsModule *up, <a href="#group___ejs_type" class="ref">EjsType</a> *baseType, int numTypeProp, int numInstanceProp, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Configure a type.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="nameRef">ejsContainsAsc</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pat)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a string contains an ascii substring.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="nameRef">ejsContainsChar</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, int charPat)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a string contains a character.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="nameRef">ejsContainsString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, <a href="#group___ejs_string" class="ref">EjsString</a> *pat)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a string contains another string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="nameRef">ejsCopyToByteArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> offset, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *data, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> length)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Copy data into a byte array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_pot" class="ref">EjsPot*</a></td><td><a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="nameRef">ejsCreateActivation</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, int numSlots)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an activation record for a function.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_type" class="ref">EjsType*</a></td><td><a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="nameRef">ejsCreateArchetype</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsFunction *fun, <a href="#group___ejs_pot" class="ref">EjsPot</a> *prototype)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an Archetype.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_array" class="ref">EjsArray*</a></td><td><a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="nameRef">ejsCreateArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_function" class="ref">EjsFunction*</a></td><td><a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="nameRef">ejsCreateBareFunction</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name, int attributes)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a bare function.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="nameRef">ejsCreateBareString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an empty string object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_boolean" class="ref">EjsBoolean*</a></td><td><a href="#group___ejs_boolean_1ga52a502e93b5f5a05d5619ce53fbcfe48" class="nameRef">ejsCreateBoolean</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a boolean.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_byte_array" class="ref">EjsByteArray*</a></td><td><a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="nameRef">ejsCreateByteArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a byte array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#struct_ejs_code" class="ref">EjsCode*</a></td><td><a href="#group___ejs_function_1ga4be7f507d1c5e777a9e8022f1cbba201" class="nameRef">ejsCreateCode</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, struct EjsModule *module, <a href="osdep.html#osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2" class="ref">cuchar</a> *byteCode, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len, <a href="#struct_ejs_debug" class="ref">EjsDebug</a> *debug)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a code block.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_type" class="ref">EjsType*</a></td><td><a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="nameRef">ejsCreateCoreType</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname, int size, int slotNum, int numTypeProp, void *manager, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a core type object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_date" class="ref">EjsDate*</a></td><td><a href="#group___ejs_date_1gad85120109dc8c4d6a399d5e81be3cc78" class="nameRef">ejsCreateDate</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="mpr.html#group___mpr_time" class="ref">MprTime</a> value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new date instance.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="nameRef">ejsCreateEmptyPot</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an empty property object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga975b06311da83fea1088a8be55d9c5fb" class="nameRef">ejsCreateError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, <a href="#group___ejs_obj" class="ref">EjsObj</a> *message)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an error object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_file" class="ref">EjsFile*</a></td><td><a href="#group___ejs_file_1ga5f2c865e36e54f93f3caa0159982cff9" class="nameRef">ejsCreateFile</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *filename)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a File object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_file" class="ref">EjsFile*</a></td><td><a href="#group___ejs_file_1ga2b1b33f9ab920e964d4e34a77fe00acf" class="nameRef">ejsCreateFileFromFd</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int fd, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, int mode)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a file object from an O/S file descriptor.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_file_system" class="ref">EjsFileSystem*</a></td><td><a href="#group___ejs_path_1ga50234ab8d65dd433fea18ff170f62f15" class="nameRef">ejsCreateFileSystem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a FileSystem object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_function" class="ref">EjsFunction*</a></td><td><a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="nameRef">ejsCreateFunction</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name, <a href="osdep.html#osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2" class="ref">cuchar</a> *code, int codeLen, int numArgs, int numDefault, int numExceptions, struct EjsType *returnType, int attributes, struct EjsModule *module, <a href="#group___ejs_block" class="ref">EjsBlock</a> *scope, int strict)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a function object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_http" class="ref">EjsHttp*</a></td><td><a href="#group___ejs_http_1ga35375f154c987c2f3838c2e58a76ca3c" class="nameRef">ejsCreateHttp</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new Http object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="nameRef">ejsCreateInstance</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, int argc, void *argv)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new variable instance.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_iterator" class="ref">EjsIterator*</a></td><td><a href="#group___ejs_iterator_1gae03a8656c8b4b158cb731db704866370" class="nameRef">ejsCreateIterator</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *target, int length, void *next, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep, <a href="#group___ejs_array" class="ref">EjsArray</a> *namespaces)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an iterator object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_namespace" class="ref">EjsNamespace*</a></td><td><a href="#group___ejs_namespace_1ga970be270f8abe248d46bedcfbc022698" class="nameRef">ejsCreateNamespace</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a namespace object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_null" class="ref">EjsNull*</a></td><td><a href="#group___ejs_null_1ga3bf82a2a5c4511feb4776b1a0388f156" class="nameRef">ejsCreateNull</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create the null object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_number" class="ref">EjsNumber*</a></td><td><a href="#group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec" class="nameRef">ejsCreateNumber</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1ad74c0abcb5f095bdae78bedeb710071f" class="ref">MprNumber</a> value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a number object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="nameRef">ejsCreateObj</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, int numSlots)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_path" class="ref">EjsPath*</a></td><td><a href="#group___ejs_path_1ga89c88658e009637fe471fef151e9b599" class="nameRef">ejsCreatePath</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a Path object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_path" class="ref">EjsPath*</a></td><td><a href="#group___ejs_path_1gacb5b025bc35d864fc937fe4ad6a24224" class="nameRef">ejsCreatePathFromAsc</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a Path object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_pool" class="ref">EjsPool*</a></td><td><a href="#group___ejs_pool_1gae91e29c7556670788cbf87013819a949" class="nameRef">ejsCreatePool</a>(int poolMax, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *templateScript, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *startScript, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *startScriptPath, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *home, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *documents)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a pool for virutal machines.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="nameRef">ejsCreatePot</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, int size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an object instance of the specified type.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="nameRef">ejsCreatePotHelpers</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create the Pot helpers.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_obj" class="ref">EjsObj*</a></td><td><a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="nameRef">ejsCreatePrototype</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *type, int numProp)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a type prototype.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_reg_exp" class="ref">EjsRegExp*</a></td><td><a href="#group___ejs_reg_exp_1gaeadd405d338274acaa25acad550d4443" class="nameRef">ejsCreateRegExp</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new regular expression object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_request" class="ref">EjsRequest*</a></td><td><a href="#group___ejs_request_1gae4d5165d879868c4cea4a78939c46cb8" class="nameRef">ejsCreateRequest</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_http_server" class="ref">EjsHttpServer</a> *server, <a href="http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *dir)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_namespace" class="ref">EjsNamespace*</a></td><td><a href="#group___ejs_namespace_1ga3514b104e530e365f97c03f4bc9f9b5c" class="nameRef">ejsCreateReservedNamespace</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> *typeName, <a href="#group___ejs_string" class="ref">EjsString</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a reserved namespace.</td></tr>
<tr class="apiDef"><td class="apiType">struct EjsArray*</td><td><a href="#group___ejs_module_1ga2074536c4ebc6f82689d783ec5cde5bf" class="nameRef">ejsCreateSearchPath</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *searchPath)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a search path array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_socket" class="ref">EjsSocket*</a></td><td><a href="#group___ejs_socket_1ga96fc0527a264a6190f8b9384280a1d3f" class="nameRef">ejsCreateSocket</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="mpr.html#group___mpr_socket" class="ref">MprSocket</a> *sock, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> async)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new Socket object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="nameRef">ejsCreateString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a string object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="nameRef">ejsCreateStringFromAsc</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a string from ascii.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="nameRef">ejsCreateStringFromBytes</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a string from an ascii block.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="nameRef">ejsCreateStringFromConst</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsModule *mp, int index)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a string from a module string constant.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="nameRef">ejsCreateStringFromMulti</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a string from UTF-8 multibyte string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_type" class="ref">EjsType*</a></td><td><a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="nameRef">ejsCreateType</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> name, struct EjsModule *up, <a href="#group___ejs_type" class="ref">EjsType</a> *baseType, <a href="#group___ejs_pot" class="ref">EjsPot</a> *prototype, int slotNum, int numTypeProp, int numInstanceProp, int size, void *manager, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new type object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_void" class="ref">EjsVoid*</a></td><td><a href="#group___ejs_void_1ga66be69faabddaa5aa401e0b1037cadd4" class="nameRef">ejsCreateUndefined</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create the undefined object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_uri" class="ref">EjsUri*</a></td><td><a href="#group___ejs_uri_1gae6752aaa05bbde3fbd49c8426b131a70" class="nameRef">ejsCreateUri</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *uri)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a Uri object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_uri" class="ref">EjsUri*</a></td><td><a href="#group___ejs_uri_1ga70990d61d8fc6282714f2bfa09223fe7" class="nameRef">ejsCreateUriFromAsc</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a URI from an ascii path.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_uri" class="ref">EjsUri*</a></td><td><a href="#group___ejs_uri_1gaeb2760117ebd7fb8f740bb75fd7ec443" class="nameRef">ejsCreateUriFromParts</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *scheme, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host, int port, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *query, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *reference, int flags)</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs" class="ref">Ejs*</a></td><td><a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="nameRef">ejsCreateVM</a>(int argc, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> **argv, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an ejs virtual machine.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_web_socket" class="ref">EjsWebSocket*</a></td><td><a href="#group___ejs_web_socket_1ga7b78145c86d4db2408ac2c990a3d3e29" class="nameRef">ejsCreateWebSocket</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new WebSocket object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_worker" class="ref">EjsWorker*</a></td><td><a href="#group___ejs_worker_1ga6fe839d13cc75c1b934ea042241cf5bf" class="nameRef">ejsCreateWorker</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a worker.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_x_m_l" class="ref">EjsXML*</a></td><td><a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="nameRef">ejsCreateXML</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int kind, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *parent, <a href="#group___ejs_string" class="ref">EjsString</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an XML node object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_x_m_l" class="ref">EjsXML*</a></td><td><a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="nameRef">ejsCreateXMLList</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *targetObject, <a href="#group___ejs_name" class="ref">EjsName</a> targetProperty)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an XML list object.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="nameRef">ejsDefineGlobalFunction</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name, <a href="#group___ejs_function_1ga154ff59b6e236d13c28765946349c884" class="ref">EjsProc</a> fn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a global function.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="nameRef">ejsDefineInstanceProperty</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *type, int slotNum, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#group___ejs_type" class="ref">EjsType</a> *propType, int attributes, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define an instance property.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="nameRef">ejsDefineProperty</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, <a href="#group___ejs_name" class="ref">EjsName</a> qname, struct EjsType *type, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a property.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_namespace" class="ref">EjsNamespace*</a></td><td><a href="#group___ejs_namespace_1ga26256811d200826f0aa85262c7787d9c" class="nameRef">ejsDefineReservedNamespace</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_block" class="ref">EjsBlock</a> *block, <a href="#group___ejs_name" class="ref">EjsName</a> *typeName, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a reserved namespace on a block.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="nameRef">ejsDeleteProperty</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Delete a property.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="nameRef">ejsDeletePropertyByName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Delete a property by name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="nameRef">ejsDeserialize</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsString *str)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Deserialize a JSON encoded string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="nameRef">ejsDestroyIntern</a>(struct EjsIntern *intern)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy the intern string cache.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_session_1gaceee664902b7431cacd92456152c3478" class="nameRef">ejsDestroySession</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_session" class="ref">EjsSession</a> *session)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy as session.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#ejscript_8h_1a848b4c9eadc852cb61483df8dee91d60" class="nameRef">ejsDestroyVM</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy an interpreter.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="nameRef">ejsEvalFile</a>(<a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Evaluate a file.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="nameRef">ejsEvalModule</a>(<a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Evaluate a module.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="nameRef">ejsEvalScript</a>(<a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *script)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Evaluate a script.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="nameRef">ejsExit</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int status)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Instruct the interpreter to exit.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_type" class="ref">EjsType*</a></td><td><a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="nameRef">ejsFinalizeCoreType</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Finalize a core type.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_type" class="ref">EjsType*</a></td><td><a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="nameRef">ejsFinalizeScriptType</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname, int size, void *manager, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Finalize a script type.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="nameRef">ejsFixTraits</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Fix traits.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_namespace_1ga4995911001fe132d0779e962d439003c" class="nameRef">ejsFormatReservedNamespace</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> *typeName, <a href="#group___ejs_string" class="ref">EjsString</a> *spaceName)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Format a reserved namespace name to create a unique namespace.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_pool_1ga183288605b545455090523a9756365ad" class="nameRef">ejsFreePoolVM</a>(<a href="#group___ejs_pool" class="ref">EjsPool</a> *pool, <a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Free a VM back to the pool.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_boolean_1ga5797d3e7d316cf893218453530939d70" class="nameRef">ejsGetBoolean</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the C boolean value from a boolean object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="nameRef">ejsGetByteArrayAvailableData</a>(<a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the number of available bytes.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="nameRef">ejsGetByteArrayRoom</a>(<a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine the spare room in the byte array for more data.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mpr.html#group___mpr_time" class="ref">MprTime</a></td><td><a href="#group___ejs_date_1ga3d02ee8066787be16a429f45912357f7" class="nameRef">ejsGetDate</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_date" class="ref">EjsDate</a> *date)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the numeric value stored in a EjsDate object.</td></tr>
<tr class="apiDef"><td class="apiType">double</td><td><a href="#group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9" class="nameRef">ejsGetDouble</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the numeric value stored in a EjsNumber object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="nameRef">ejsGetErrorMsg</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int withStack)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the interpreter error message.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_obj" class="ref">EjsObj*</a></td><td><a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="nameRef">ejsGetException</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the Ejs exception object for this interpreter.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="nameRef">ejsGetFirstItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the first item from an array.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___ejs_1ga219502088780c6399a9a49241c477dbe" class="nameRef">ejsGetHandle</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the hosting handle.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="nameRef">ejsGetHashSize</a>(int numProp)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the preferred hash size.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_http_1ga60a89e801d85e336886d45983d9f1f61" class="nameRef">ejsGetHttpLimits</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj, <a href="http.html#group___http_limits" class="ref">HttpLimits</a> *limits, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> server)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a Http limits.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="nameRef">ejsGetImmutable</a>(struct Ejs *ejs, int slotNum)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an immutable object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="nameRef">ejsGetImmutableByName</a>(struct Ejs *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an immutable object by name.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4" class="nameRef">ejsGetInt</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the numeric value stored in a EjsNumber object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a></td><td><a href="#group___ejs_number_1gae4da96689634ac22129839f577cc208a" class="nameRef">ejsGetInt64</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an 64 bit integer value equivalent to that stored in an EjsNumber object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="nameRef">ejsGetItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int index)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an item from an array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="nameRef">ejsGetLastItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the last item from an array.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="nameRef">ejsGetLength</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a count of properties in a variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="nameRef">ejsGetNextItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int *next)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the next item from an array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1ad74c0abcb5f095bdae78bedeb710071f" class="ref">MprNumber</a></td><td><a href="#group___ejs_number_1ga45311f2f0ea79363270b212e9690546f" class="nameRef">ejsGetNumber</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the numeric value stored in a EjsNumber object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_array" class="ref">EjsArray*</a></td><td><a href="#ejscript_8h_1a587b962cb08be644eaf6b2c70dd37fd6" class="nameRef">ejsGetPathFiles</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_path" class="ref">EjsPath</a> *path, int argc, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> **argv)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get files below a path.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_name" class="ref">EjsName</a></td><td><a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="nameRef">ejsGetPotPropertyName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj, int slotNum)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a property name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="nameRef">ejsGetPrevItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int *prev)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the previous item from an array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="nameRef">ejsGetProperty</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a property.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="nameRef">ejsGetPropertyByName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a property by name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_name" class="ref">EjsName</a></td><td><a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="nameRef">ejsGetPropertyName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a variable property&apos;s name.</td></tr>
<tr class="apiDef"><td class="apiType">struct EjsTrait*</td><td><a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="nameRef">ejsGetPropertyTraits</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a property&apos;s traits.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_pot" class="ref">EjsPot*</a></td><td><a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="nameRef">ejsGetPrototype</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the prototype object for an object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_session" class="ref">EjsSession*</a></td><td><a href="#group___ejs_session_1gacfdf3f7f5fee5eea23b1152b089a3135" class="nameRef">ejsGetSession</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *key, <a href="mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> timeout, int create)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a session object for a given key.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_type" class="ref">EjsType*</a></td><td><a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="nameRef">ejsGetType</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int slotNum)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a type.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_type" class="ref">EjsType*</a></td><td><a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="nameRef">ejsGetTypeByName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a type given its name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_type_1gaafdf35287cba548cc03605f1617694c5" class="nameRef">ejsGetTypeName</a>(struct Ejs *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the type name of an object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_type_1gad5fcfe6a44792a9fd457d631242bc4ea" class="nameRef">ejsGetTypeOf</a>(struct Ejs *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>TypeOf operator.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="nameRef">ejsGetVarByName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#struct_ejs_lookup" class="ref">EjsLookup</a> *lookup)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a variable by name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_x_m_l" class="ref">EjsXML*</a></td><td><a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="nameRef">ejsGetXMLDescendants</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, <a href="#group___ejs_name" class="ref">EjsName</a> qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the descendants of an XML node that match the given name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="nameRef">ejsGrowByteArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Grow the byte array.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="nameRef">ejsGrowPot</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj, int numSlots)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Grow a pot object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="nameRef">ejsHasException</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if an exception has been thrown.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="nameRef">ejsIndexProperties</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Make or remake a property index.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="nameRef">ejsInitFunction</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, <a href="#group___ejs_string" class="ref">EjsString</a> *name, <a href="osdep.html#osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2" class="ref">cuchar</a> *code, int codeLen, int numArgs, int numDefault, int numExceptions, struct EjsType *returnType, int attributes, struct EjsModule *module, <a href="#group___ejs_block" class="ref">EjsBlock</a> *scope, int strict)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Initialize a function object.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="nameRef">ejsInsertItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int index, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *item)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Insert an item.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="nameRef">ejsInsertPotProperties</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *pot, int numSlots, int offset)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Insert properties.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="nameRef">ejsInternAsc</a>(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Intern a string object from an Ascii string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="nameRef">ejsInternMulti</a>(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Intern a string object from a UTF-8 string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="nameRef">ejsInternString</a>(<a href="#group___ejs_string" class="ref">EjsString</a> *sp)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Intern a string object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="nameRef">ejsInternWide</a>(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Intern a string object from a UTF-16 string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="nameRef">ejsInvokeOperator</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int opCode, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *rhs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Invoke an opcode on a native type.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="nameRef">ejsInvokeOperatorDefault</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int opCode, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *rhs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Default implementation for operator invoke.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="nameRef">ejsIs</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, void *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test the type of an object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="nameRef">ejsIsA</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *target, <a href="#group___ejs_type" class="ref">EjsType</a> *type)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if an variable is an instance of a given type.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_block_1ga5534bcfc33909ecb2ee8f95dda0a506c" class="nameRef">ejsIsBlock</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if a variable is a block.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="nameRef">ejsIsDefined</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test the object is not null and not undefined.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="nameRef">ejsIsError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the given object is an error instance.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_frame_1gadedcb4d617bcaae8cb975249a763b36c" class="nameRef">ejsIsFrame</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if a variable is a frame.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="nameRef">ejsIsFunction</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if a variable is a function.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15" class="nameRef">ejsIsInfinite</a>(<a href="#ejscript_8h_1ad74c0abcb5f095bdae78bedeb710071f" class="ref">MprNumber</a> n)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a number is infinite.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="nameRef">ejsIsInitializer</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if the function is an initializer.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1" class="nameRef">ejsIsNan</a>(<a href="#ejscript_8h_1ad74c0abcb5f095bdae78bedeb710071f" class="ref">MprNumber</a> n)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a value is not-a-number.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="nameRef">ejsIsNativeFunction</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if the function is a native function.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="nameRef">ejsIsPot</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if a variable is a Pot.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_type_1ga2f1e87fc744789876dbac6f8a01383f1" class="nameRef">ejsIsPrototype</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if a variable is a prototype object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="nameRef">ejsIsType</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if a variable is an type.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="nameRef">ejsIsTypeSubType</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *target, <a href="#group___ejs_type" class="ref">EjsType</a> *baseType)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a type is a derived type of a given base type.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="nameRef">ejsIsXML</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if a variable is an XML object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_array_1ga64db5544fc6c25811c91b9c90f62c55c" class="nameRef">ejsJoinArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#group___ejs_string" class="ref">EjsString</a> *join)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Join an array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="nameRef">ejsJoinString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="#group___ejs_string" class="ref">EjsString</a> *s2)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Join two strings.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="nameRef">ejsJoinStrings</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *src, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Join strings.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_path_1ga7d27ac819b3827b66dd3fee21707700b" class="nameRef">ejsLoadHttpService</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Load the Http service.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_module_1gaa2d1411bda71012cd02f0dfb3be3bf85" class="nameRef">ejsLoadModule</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name, int minVer, int maxVer, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Load a module.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_module_1ga7f5fd9032996838e6093e47ff73cd7e0" class="nameRef">ejsLoadModules</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *search, <a href="mpr.html#group___mpr_list" class="ref">MprList</a> *require)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Load modules into an interpreter.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1ga95f98d86be206637b6d6a1e0d5c32fce" class="nameRef">ejsLoadScriptFile</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *script, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *cache, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Load a script from a file.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1ga7c5b84ce75c444db377ce916ee869cc5" class="nameRef">ejsLoadScriptLiteral</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *script, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *cache, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Load a script from a string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="nameRef">ejsLoadXMLAsc</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *xmlString)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Load an XML document from an Ascii string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="nameRef">ejsLoadXMLString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, <a href="#group___ejs_string" class="ref">EjsString</a> *xmlString)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Load an XML document.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="nameRef">ejsLog</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Enter a message into the log file.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="nameRef">ejsLookupItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *item)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup an item in the array.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="nameRef">ejsLookupPotProperty</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a property in a Pot.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="nameRef">ejsLookupProperty</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a property by name.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="nameRef">ejsLookupScope</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#struct_ejs_lookup" class="ref">EjsLookup</a> *lookup)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a variable using the current scope.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="nameRef">ejsLookupVar</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#struct_ejs_lookup" class="ref">EjsLookup</a> *lookup)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a variable.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="nameRef">ejsLookupVarWithNamespaces</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#struct_ejs_lookup" class="ref">EjsLookup</a> *lookup)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a variable in an object (only).</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="nameRef">ejsMakeRoomInByteArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> require)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Make room in the byte array for data.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="nameRef">ejsManagePot</a>(void *obj, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Mark an object as currently in use.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_name_1ga8e96e376f3e611d2318ae69ee24778ff" class="nameRef">ejsMarkName</a>(<a href="#group___ejs_name" class="ref">EjsName</a> *qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Mark a name for GC.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="nameRef">ejsMatchName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> *a, <a href="#group___ejs_name" class="ref">EjsName</a> *b)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if two names match.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_name" class="ref">EjsName</a></td><td><a href="#group___ejs_name_1ga6c8e3b296ee0bbbcc1516dcc4209003d" class="nameRef">ejsName</a>(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *space, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Initialize a Qualified Name structure.</td></tr>
<tr class="apiDef"><td class="apiType">struct EjsString*</td><td><a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="nameRef">ejsObjToJSON</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj, int argc, <a href="#group___ejs_obj" class="ref">EjsObj</a> **argv)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Method proc for conversion to a JSON string.</td></tr>
<tr class="apiDef"><td class="apiType">struct EjsString*</td><td><a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="nameRef">ejsObjToString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj, int argc, <a href="#group___ejs_obj" class="ref">EjsObj</a> **argv)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Method proc for conversion to a string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="nameRef">ejsParse</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *str, int prefType)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Parse a string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_reg_exp" class="ref">EjsRegExp*</a></td><td><a href="#group___ejs_reg_exp_1gaf10d72be3aa1eebdc3e0f3ed5998ff1b" class="nameRef">ejsParseRegExp</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *pattern)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Parse a string and create a regular expression object.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="nameRef">ejsPropertyHasTrait</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, int attributes)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test a property&apos;s traits.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_reg_exp_1ga638a01b979b00f6ee16a8254cd998d4d" class="nameRef">ejsRegExpToString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_reg_exp" class="ref">EjsRegExp</a> *rp)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a string representation of a regular expression.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="nameRef">ejsRemoveConstructor</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a constructor function from a type.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="nameRef">ejsRemoveItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *item, int compact)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove an item from the array.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="nameRef">ejsRemoveItemAtPos</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int index, int compact)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove an item at a given index from the array.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_array" class="ref">EjsArray*</a></td><td><a href="#group___ejs_array_1gab31dedace83a801464ad335f68860da6" class="nameRef">ejsRemoveItems</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#group___ejs_array" class="ref">EjsArray</a> *items)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove items from the array.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="nameRef">ejsRemoveLastItem</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove the last item from the array.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1ga25ab5e7566650730da4f836f43987789" class="nameRef">ejsRemoveObserver</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *emitter, <a href="#group___ejs_obj" class="ref">EjsObj</a> *name, struct EjsFunction *observer)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove an observer.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="nameRef">ejsRemovePotProperty</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a property.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_worker_1gab6fd625a18aadafdb271936e5a1f0084" class="nameRef">ejsRemoveWorkers</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove workers before exiting.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="nameRef">ejsReportError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, char *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Report an error message using the MprLog error channel.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="nameRef">ejsResetByteArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Reset the byte.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="nameRef">ejsRun</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Run a script.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="nameRef">ejsRunFunction</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fn, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *thisObj, int argc, void *argv)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Run a function.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_function_1gaef84de6822a6963fc4fafd12525436ba" class="nameRef">ejsRunFunctionByName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *container, <a href="#group___ejs_name" class="ref">EjsName</a> qname, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *thisObj, int argc, void *argv)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Run a function by name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="nameRef">ejsRunFunctionBySlot</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, int argc, void *argv)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Run a function by slot number.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_obj" class="ref">EjsObj*</a></td><td><a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="nameRef">ejsRunInitializer</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsModule *module)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Run the initializer for a module.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="nameRef">ejsRunProgram</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *className, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methodName)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Run a program.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___ejs_module_1gaf5832f71a4c2ed1ff07bc81f2ddc000a" class="nameRef">ejsSearchForModule</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, int minVer, int maxVer)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Search for a module in the module search path.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1gaf90834e338b36a61c7dce1d7c7bb87b5" class="nameRef">ejsSendEvent</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *emitter, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *thisObj, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *arg)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send an event to observers.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1gad08bd8d3f861b0f3769013d52045c417" class="nameRef">ejsSendEventv</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *emitter, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *thisObj, int argc, void *argv)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send an event to observers.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="nameRef">ejsSerialize</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Serialize a variable into JSON format.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="nameRef">ejsSerializeWithOptions</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Serialize a variable into JSON format.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="nameRef">ejsSetByteArrayPositions</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> readPosition, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> writePosition)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the I/O byte array positions.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="nameRef">ejsSetDispatcher</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="mpr.html#group___mpr_dispatcher" class="ref">MprDispatcher</a> *dispatcher)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the MPR dispatcher to use for an interpreter.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_function_1ga05f702078d910b8ba7d8b4f65f41d18a" class="nameRef">ejsSetFunctionCode</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, struct EjsModule *module, <a href="osdep.html#osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2" class="ref">cuchar</a> *byteCode, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len, <a href="#struct_ejs_debug" class="ref">EjsDebug</a> *debug)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the byte code for a function.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_http_1gaf24460df769dbdfc75e5cb162acf64c0" class="nameRef">ejsSetHttpLimits</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="http.html#group___http_limits" class="ref">HttpLimits</a> *limits, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> server)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a Http limits.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_path_1ga8c5d44c2920c45a03e5d432668339e34" class="nameRef">ejsSetPathAttributes</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the owner, group and permissions of a file.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="nameRef">ejsSetProperty</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, void *obj, int slotNum, void *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a property&apos;s value.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="nameRef">ejsSetPropertyByName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, void *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname, void *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a property&apos;s value.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="nameRef">ejsSetPropertyName</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, <a href="#group___ejs_name" class="ref">EjsName</a> qname)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a property&apos;s name.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="nameRef">ejsSetPropertyTraits</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, struct EjsType *type, int attributes)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a property&apos;s traits.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="nameRef">ejsSetSearchPath</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsArray *search)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the module search path.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_session_1gaa9b6ddd0a43f3d73e869f759f6aa9117" class="nameRef">ejsSetSessionTimeout</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_session" class="ref">EjsSession</a> *sp, <a href="mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a session timeout.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_x_m_l" class="ref">EjsXML*</a></td><td><a href="#group___ejs_x_m_l_1ga80d04a5a44c4ce6d2150dba5fefa1d28" class="nameRef">ejsSetXMLElement</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, int index, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *node)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set an indexed element to a value.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_path_1gaad418e9cce3ebf26addcddf7c6355a3a" class="nameRef">ejsSetupHttpTrace</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="http.html#group___http_trace" class="ref">HttpTrace</a> *trace, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Setup tracing for Http transactions.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="nameRef">ejsSprintf</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Format arguments.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="nameRef">ejsStartsWithAsc</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pat)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a string starts with an ascii pattern.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="nameRef">ejsSubstring</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *src, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> offset, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a substring.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="nameRef">ejsThrowArgError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an argument exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="nameRef">ejsThrowArithmeticError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an math exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="nameRef">ejsThrowAssertError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an assertion exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="nameRef">ejsThrowError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an general error exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny*</a></td><td><a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="nameRef">ejsThrowException</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *error)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="nameRef">ejsThrowIOError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an IO exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="nameRef">ejsThrowInstructionError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an instruction code exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="nameRef">ejsThrowInternalError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an internal error exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="nameRef">ejsThrowMemoryError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an Memory depletion exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="nameRef">ejsThrowOutOfBoundsError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an out of bounds exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="nameRef">ejsThrowReferenceError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an reference exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="nameRef">ejsThrowResourceError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an resource exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="nameRef">ejsThrowStateError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an state exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_obj" class="ref">EjsObj*</a></td><td><a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="nameRef">ejsThrowStopIteration</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an stop iteration exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="nameRef">ejsThrowString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw a string message.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="nameRef">ejsThrowSyntaxError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an syntax error exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_error" class="ref">EjsError*</a></td><td><a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="nameRef">ejsThrowTypeError</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Throw an type error exception.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_boolean" class="ref">EjsBoolean*</a></td><td><a href="#group___ejs_boolean_1ga9281b223fa8eff9c0c9f1ea176576d93" class="nameRef">ejsToBoolean</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Cast a variable to a boolean.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="nameRef">ejsToJSON</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert a variable to a string in JSON format.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#ejscript_8h_1a5414fa10fe236f44af8d77b5e7797ba2" class="nameRef">ejsToLiteralString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert a string to a literal string style representation.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="nameRef">ejsToLower</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert a string to lower case.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="nameRef">ejsToMulti</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, void *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert an object to a UTF-8 string representation.</td></tr>
<tr class="apiDef"><td class="apiType">struct EjsNumber*</td><td><a href="#group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616" class="nameRef">ejsToNumber</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Cast a variable to a number.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_path" class="ref">EjsPath*</a></td><td><a href="#group___ejs_path_1gacd5f3e05c6dfd42be0bc63a684f2c138" class="nameRef">ejsToPath</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert the object to a Path.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="nameRef">ejsToString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Cast a variable to a string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="nameRef">ejsToUpper</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert a string to upper case.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_uri" class="ref">EjsUri*</a></td><td><a href="#group___ejs_uri_1gae9febc6fc7e1e4040866f4e6c0e524c3" class="nameRef">ejsToUri</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert an object to a URI.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_string" class="ref">EjsString*</a></td><td><a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="nameRef">ejsTruncateString</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *src, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Truncate a string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___ejs_1gab461a266bf2f25cea1055152c7422cea" class="nameRef">ejsUnblockGC</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int blocked)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Unblock garbage collection.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___ejs_name" class="ref">EjsName</a></td><td><a href="#group___ejs_name_1ga44e87f616d5f0ad7103e15b057d35ee3" class="nameRef">ejsWideName</a>(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *space, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Initialize a Qualified Name structure using a wide namespace and name.</td></tr>
<tr class="apiDef"><td class="apiType">struct EjsNumber*</td><td><a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="nameRef">ejsWriteToByteArray</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, int argc, <a href="#group___ejs_obj" class="ref">EjsObj</a> **argv)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write data to the byte array This implements the ByteArray.write function.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="nameRef">ejsXMLToBuf</a>(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="mpr.html#group___mpr_buf" class="ref">MprBuf</a> *buf, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, int indentLevel)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert an xml node to string representation in a buffer.</td></tr>
</table>
<a name="Typedefs"></a><h1>Typedefs</h1>
<table class="apiIndex" title="typedefs">
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_code" class="nameRef">EjsCode</a></td><td class="apiBrief">Byte code.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_constants" class="nameRef">EjsConstants</a></td><td class="apiBrief">Constant pool for module files.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_debug" class="nameRef">EjsDebug</a></td><td class="apiBrief">Debug record for module files.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_ex" class="nameRef">EjsEx</a></td><td class="apiBrief">Exception Handler Record.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_hash" class="nameRef">EjsHash</a></td><td class="apiBrief">Property hash linkage.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_helpers" class="nameRef">EjsHelpers</a></td><td class="apiBrief">Allocation and Type Helpers.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_intern" class="nameRef">EjsIntern</a></td><td class="apiBrief">Interned string hash shared over all interpreters.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_line" class="nameRef">EjsLine</a></td><td class="apiBrief">Symbolic debugging storage for source code in module files.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_lookup" class="nameRef">EjsLookup</a></td><td class="apiBrief">Lookup State.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___ejs_module_1ga550b9b21fc9598fbe012216e1d9745fe" class="nameRef">EjsNativeCallback</a></td><td class="apiBrief">Native module initialization callback.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___ejs_function_1ga154ff59b6e236d13c28765946349c884" class="nameRef">EjsProc</a></td><td class="apiBrief">Native Function signature.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_properties" class="nameRef">EjsProperties</a></td><td class="apiBrief">Object properties.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_service" class="nameRef">EjsService</a></td><td class="apiBrief">Ejscript Service structure.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_slot" class="nameRef">EjsSlot</a></td><td class="apiBrief">Property slot structure.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_state" class="nameRef">EjsState</a></td><td class="apiBrief">VM Evaluation state.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_trait" class="nameRef">EjsTrait</a></td><td class="apiBrief">Property traits.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_ejs_xml_tag_state" class="nameRef">EjsXmlTagState</a></td><td class="apiBrief">Xml tag state.</td></tr>
</table>
<a name="Defines"></a><h1>Defines</h1>
<table class="apiIndex" title="Defines">
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a8c154b25b5765f5ab19a98d7b3600670" class="nameRef">_h_EJS_WEB_h</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsWeb.h <ndash/> Header for the Ejscript Web Framework Copyright (c) All Rights Reserved.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a0c30e2a45f842917f77fcfd35c659bcd" class="nameRef">EC_BUFSIZE</a>&nbsp;&nbsp;&nbsp;4096</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>General buffer size.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a13c0b49d8183932999405d66bb79f9ef" class="nameRef">EC_CODE_BUFSIZE</a>&nbsp;&nbsp;&nbsp;4096</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Initial size of code gen buffer.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a87efa7048e961bc2c495eb151ba1216d" class="nameRef">EC_FLAGS_BIND</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsLoad flags to bind global references and type/object properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a39057cbf4da04a3f8ecd3b4d7c80a722" class="nameRef">EC_FLAGS_DEBUG</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsLoad flags to generate symbolic debugging information.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aefb0d4730e374b75eddbbc876baed977" class="nameRef">EC_FLAGS_DOC</a>&nbsp;&nbsp;&nbsp;0x100</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsLoad flags to parse inline doc.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aa9a2925793ba33527dab9d80ccd74e68" class="nameRef">EC_FLAGS_MERGE</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsLoad flags to merge all output onto one output file.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1afeb21e9395a0716acda193ae82c50173" class="nameRef">EC_FLAGS_NO_OUT</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsLoad flags discard all output.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a95c5524ca30a92396eed427689419398" class="nameRef">EC_FLAGS_PARSE_ONLY</a>&nbsp;&nbsp;&nbsp;0x20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsLoad flags to only parse source.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a15576f0772121d0b4cd21eb1eb2b14e5" class="nameRef">EC_FLAGS_THROW</a>&nbsp;&nbsp;&nbsp;0x40</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsLoad flags to throw errors when compiling.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ac3edabee01e41e70de41a5784145e065" class="nameRef">EC_FLAGS_VISIBLE</a>&nbsp;&nbsp;&nbsp;0x80</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsLoad flags to make global vars visible to all.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a765fc27a0c02a43b9a5f977e06a390e5" class="nameRef">EC_LINE_INCR</a>&nbsp;&nbsp;&nbsp;1024</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Growth increment for input lines.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aaceffbafb3012d7e61b60ed97e83f612" class="nameRef">EC_MAX_ERRORS</a>&nbsp;&nbsp;&nbsp;25</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Max compilation errors before giving up.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a0767fc5abb9cdc818daf7ef05ae0ca24" class="nameRef">EC_MAX_INCLUDE</a>&nbsp;&nbsp;&nbsp;32</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Max number of nested includes.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a63943cd5b73deadd772423201c48f061" class="nameRef">EC_NUM_PAK_PROP</a>&nbsp;&nbsp;&nbsp;32</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Initial number of properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ae32544367e525060e7efe81ef9af7d86" class="nameRef">EC_TOKEN_INCR</a>&nbsp;&nbsp;&nbsp;64</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Growth increment for tokens.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a5c080ddcc2de55475875384c9cc1065f" class="nameRef">EJS_BLEND_ADD</a>&nbsp;&nbsp;&nbsp;0x80</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject for &quot;+&quot; property blend.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a8d2c5acfe6a82506f8f769f4899cb3f4" class="nameRef">EJS_BLEND_ASSIGN</a>&nbsp;&nbsp;&nbsp;0x200</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject for &quot;=&quot; property blend.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ac6a8c75a0d2bad04b41a9ee0203f3556" class="nameRef">EJS_BLEND_COMBINE</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject to combine key values.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ae2b97803d128532c92dc7a85eacadcda" class="nameRef">EJS_BLEND_COND_ASSIGN</a>&nbsp;&nbsp;&nbsp;0x400</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject for &quot;?&quot; property blend.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a4e3bc8c032deb83e826e3e5b4cd825fc" class="nameRef">EJS_BLEND_DEEP</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject to copy nested object recursively.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a9bd6f3414ded6d158c65759853c56b58" class="nameRef">EJS_BLEND_FUNCTIONS</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject to copy function properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a44de6e74070ff82daaa868959f7d77f3" class="nameRef">EJS_BLEND_OVERWRITE</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject to overwrite existing properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a249cfe1d2a010170bfeb953f43ff3696" class="nameRef">EJS_BLEND_PRIVATE</a>&nbsp;&nbsp;&nbsp;0x20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject to copy private properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a3102a437092fa3bd96881da39d0ab374" class="nameRef">EJS_BLEND_PUBLIC</a>&nbsp;&nbsp;&nbsp;0x800</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject for blending into public properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a994326644bbd4e086425e90e9d67b525" class="nameRef">EJS_BLEND_SUB</a>&nbsp;&nbsp;&nbsp;0x100</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject for &quot;-&quot; property blend.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a997e886054c5f828965901716dae7fb7" class="nameRef">EJS_BLEND_SUBCLASSES</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject to copy subclassed properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a77674373b34d9de3fcbe75352f5f4ae3" class="nameRef">EJS_BLEND_TRACE</a>&nbsp;&nbsp;&nbsp;0x40</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for ejsBlendObject to trace blend operations to the log.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ae46f908ee71377d1fd93b21b444074ec" class="nameRef">EJS_CODE_MAGIC</a>&nbsp;&nbsp;&nbsp;0x91917128</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Code record integrity check.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a453c79753920e01c8336430576f75e8c" class="nameRef">EJS_DEBUG_INCR</a>&nbsp;&nbsp;&nbsp;16</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Growth increment for <a class="ref" href="#struct_ejs_debug">EjsDebug</a></td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a9ab444f8d55745244c283c5ca4fb7310" class="nameRef">EJS_DEBUG_MAGIC</a>&nbsp;&nbsp;&nbsp;0x78654423</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Debug record integrity check.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a25580acb681771ffb3691b304873c710" class="nameRef">EJS_DIR_PERMS</a>&nbsp;&nbsp;&nbsp;0775</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default dir perms.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a67eff7cb5f19144f78877050b3d6ca8d" class="nameRef">EJS_DOC_HASH_SIZE</a>&nbsp;&nbsp;&nbsp;1007</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Hash for doc descriptions.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a06d1b1ba1155beb9b1a8c6a3ee22b0dc" class="nameRef">EJS_EX_CATCH</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td><a class="ref" href="#struct_ejs_ex">EjsEx</a> flag for a catch block.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a08b660f29d16df648e83d33309ff0ad6" class="nameRef">EJS_EX_FINALLY</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td><a class="ref" href="#struct_ejs_ex">EjsEx</a> flag for a finally block.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a80aaeb92da5ba1d49554615721d5c1c6" class="nameRef">EJS_EX_INC</a>&nbsp;&nbsp;&nbsp;4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Growth increment for exception handlers.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aae7f6f05ccfdb28bf9adc7465e5efae2" class="nameRef">EJS_EX_ITERATION</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td><a class="ref" href="#struct_ejs_ex">EjsEx</a> flag for an iteration catch block.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a2bc83a15d3913adbaf437c65b998a7c8" class="nameRef">EJS_FILE_PERMS</a>&nbsp;&nbsp;&nbsp;0664</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default file perms.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aa54bd5787046f8b13ed747b0554af898" class="nameRef">EJS_FLAG_DOC</a>&nbsp;&nbsp;&nbsp;0x40</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Load documentation from modules.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ab3defaa615b8816b6bfee64f897649d8" class="nameRef">EJS_FLAG_EVENT</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Event pending.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ad36adb26e4641bbe64c77366400eb43d" class="nameRef">EJS_FLAG_HOSTED</a>&nbsp;&nbsp;&nbsp;0x400</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Interp is hosted in a web server.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a12618f4a381f60becacc42cf27729fcd" class="nameRef">EJS_FLAG_NO_INIT</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Don&apos;t initialize any modules.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a49bfc0214e9a92fc7373f21914b775fe" class="nameRef">EJS_FLAG_NOEXIT</a>&nbsp;&nbsp;&nbsp;0x200</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>App should service events and not exit.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a49a89170705eefd44c0c6b73a3027535" class="nameRef">EJS_FLAGS_ENUM_ALL</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Enumerate non-enumerable and fixture properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a418024a0b4c5fcaff1494d451a160a93" class="nameRef">EJS_FLAGS_ENUM_INHERITED</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Enumerate inherited base classes.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a80047fddba7b89c16382ec057df5d9ca" class="nameRef">EJS_FUN_CONSTRUCTOR</a>&nbsp;&nbsp;&nbsp;0x2000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Method is a constructor.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ab15c4c4e680d6ea61f08a99a31e5c589" class="nameRef">EJS_FUN_FULL_SCOPE</a>&nbsp;&nbsp;&nbsp;0x4000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Function needs closure when defined.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ab476c5051606dad5971c701cadd71106" class="nameRef">EJS_FUN_HAS_RETURN</a>&nbsp;&nbsp;&nbsp;0x8000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Function has a return statement.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a80a444856eeab33bee014fd586cdd878" class="nameRef">EJS_FUN_INITIALIZER</a>&nbsp;&nbsp;&nbsp;0x10000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type initializer code.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1adeaa659937e30c39207953f10c06215c" class="nameRef">EJS_FUN_MODULE_INITIALIZER</a>&nbsp;&nbsp;&nbsp;0x40000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Module initializer.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a2f10712b6e10265dcf518eb614652f6c" class="nameRef">EJS_FUN_OVERRIDE</a>&nbsp;&nbsp;&nbsp;0x20000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Override base type.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aa0b06d3f2187a3e6942f9d70b42735a1" class="nameRef">EJS_FUN_REST_ARGS</a>&nbsp;&nbsp;&nbsp;0x80000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Parameter is a &quot;...&quot; rest.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a658d832030e8413052b0376a52235e26" class="nameRef">EJS_HASH_MIN_PROP</a>&nbsp;&nbsp;&nbsp;8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Min props to hash.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ac7ee2162240d04bb6dd65941799c8520" class="nameRef">EJS_INC_ARGS</a>&nbsp;&nbsp;&nbsp;8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Frame stack increment.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a0372d395bed537663de168dafbefcb94" class="nameRef">EJS_INDEX_INCR</a>&nbsp;&nbsp;&nbsp;256</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Constant pool growth increment.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a68a363264f6828caa67437d605d265e4" class="nameRef">EJS_JSON_SHOW_COMMAS</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsSerialize flag to always put commas after properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ac669410bf41e278e6739026eae93c8e1" class="nameRef">EJS_JSON_SHOW_HIDDEN</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsSerialize flag to include hidden properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1afb12f564475f4a8679775841b784fc6a" class="nameRef">EJS_JSON_SHOW_NAMESPACES</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsSerialize flag to include namespaces in names.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1af614b24676ad8e371b07e54e597f23e8" class="nameRef">EJS_JSON_SHOW_NOQUOTES</a>&nbsp;&nbsp;&nbsp;0x20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsSerialize flag to omit quotes if property has no spaces.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a2b949955055c5df1bc28b2b10c32af65" class="nameRef">EJS_JSON_SHOW_NULLS</a>&nbsp;&nbsp;&nbsp;0x80</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsSerialize flag to emit null properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aec610e6a41336605af01594a2cf2ea01" class="nameRef">EJS_JSON_SHOW_PRETTY</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsSerialize flag to render in human-readible multiline format.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a580ae511b0a4dbe9ce1a969d2fcb8258" class="nameRef">EJS_JSON_SHOW_REGEXP</a>&nbsp;&nbsp;&nbsp;0x40</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsSerialize flag to emit native RegExp literals.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a10364c6857ce97dc903c7f54904aba60" class="nameRef">EJS_JSON_SHOW_SUBCLASSES</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>ejsSerialize flag to include subclass properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a23950a1eb48b4cf2d71edb02560c9115" class="nameRef">EJS_LOADER_BUILTIN</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Loading builtins.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a439bd6c508e47c7f809bad81e5c12afa" class="nameRef">EJS_LOADER_DEP</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Loading a dependency.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a94f3fee356b70523933dce5cbcca7134" class="nameRef">EJS_LOADER_ETERNAL</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Make all loaded types eternal.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a605fe1406f4f24d1da74c12ca60f107b" class="nameRef">EJS_LOADER_NO_INIT</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Load module code in strict mode.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a528e54023ef6a2f8a564543d7d0b68ea" class="nameRef">EJS_LOADER_RELOAD</a>&nbsp;&nbsp;&nbsp;0x20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Force a reload if already loaded.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a2f9d8bde75c2caf01dd3e3a756d339de" class="nameRef">EJS_LOADER_STRICT</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Load module code in strict mode.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a3ad78366bd13de1a4e08b7c3e06cae6a" class="nameRef">EJS_LOTSA_PROP</a>&nbsp;&nbsp;&nbsp;256</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Object with lots of properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ace171a85e4b1483f1f29b4218ce9593a" class="nameRef">EJS_MAX_ARGS</a>&nbsp;&nbsp;&nbsp;8192</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Max number of args.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a0bc49cd14df90b08bee7be29be56af74" class="nameRef">EJS_MAX_BASE_CLASSES</a>&nbsp;&nbsp;&nbsp;256</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Max inheritance chain.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a49971145df65c4c3e7568ec8d8d1d175" class="nameRef">EJS_MAX_COLLISIONS</a>&nbsp;&nbsp;&nbsp;4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Max intern string collion chain before rehash.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a9c34bccd4c9cbf67f0cdf5c2fa4ee7ed" class="nameRef">EJS_MAX_EXCEPTIONS</a>&nbsp;&nbsp;&nbsp;8192</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Max number of exceptions.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a1dc70dc2784ae8e6a10cdbe45c393d0d" class="nameRef">EJS_MAX_LOCALS</a>&nbsp;&nbsp;&nbsp;(10*1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Max number of locals.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1af88a149e42518f24d026ce8b00c93691" class="nameRef">EJS_MAX_POOL</a>&nbsp;&nbsp;&nbsp;(4*1024*1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Size of constant pool.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a9de76dda3ebc47f4caa55025cb9aed3a" class="nameRef">EJS_MAX_TRAITS</a>&nbsp;&nbsp;&nbsp;(0x7fff)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Max number of declared properties per block.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a0b196273149ab15e7f5b8f45f51396e5" class="nameRef">EJS_MIN_FRAME_SLOTS</a>&nbsp;&nbsp;&nbsp;16</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Miniumum number of slots for function frames.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a89d1d942788b213bcab054f0d040793e" class="nameRef">EJS_NUM_GLOBAL</a>&nbsp;&nbsp;&nbsp;256</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Number of globals slots to pre-create.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a9228e0c30103469cb3eb1363b6e23a28" class="nameRef">EJS_POOL_INACTIVITY_TIMEOUT</a>&nbsp;&nbsp;&nbsp;(60  * 1000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Prune inactive pooled VMs older than this.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a27cb1e509cbe6301bd1de0e910fa5144" class="nameRef">EJS_PROP_ENUMERABLE</a>&nbsp;&nbsp;&nbsp;0x1000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Property will be enumerable (compiler use only).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aa50cd738d372433ea48ba355b8655eb7" class="nameRef">EJS_PROP_HAS_VALUE</a>&nbsp;&nbsp;&nbsp;0x200</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Property has a value record.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a8ee6517f452fe7c7cfa1b8994e6a7338" class="nameRef">EJS_PROP_NATIVE</a>&nbsp;&nbsp;&nbsp;0x400</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Property is backed by native code.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a02f72f25cfab34dc692fed545be5da8c" class="nameRef">EJS_PROP_STATIC</a>&nbsp;&nbsp;&nbsp;0x800</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Class static property.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a4743377b4aa0bcf6794e47a2007f76cd" class="nameRef">EJS_ROUND_PROP</a>&nbsp;&nbsp;&nbsp;16</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Rounding for growing properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a0aae75c2be3c0a5c21bf1a030cdde21a" class="nameRef">EJS_SESSION</a>&nbsp;&nbsp;&nbsp;&quot;-ejs-session-&quot;</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default session cookie string.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1afa9ae5ee76d32502b078ddb0432c381b" class="nameRef">EJS_SESSION_TIMER_PERIOD</a>&nbsp;&nbsp;&nbsp;(60 * 1000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Timer checks ever minute.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a309a90e2e5a53435636f4ac7d5798169" class="nameRef">EJS_STREAM_BOTH</a>&nbsp;&nbsp;&nbsp;0x3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Http constant Stream.Both.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a444cc2c2738b95489b22bbe303aa9168" class="nameRef">EJS_STREAM_READ</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Http constant Stream.Read.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a9ba8b9dba977746a3f0f0f80cf1bbbc0" class="nameRef">EJS_STREAM_WRITE</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Http constant Stream.Write.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a5b8d0229e8be1614dd029237e2782d25" class="nameRef">EJS_TRAIT_CAST_NULLS</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Property casts nulls.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a7cecd12e5342e325c89964772a85412b" class="nameRef">EJS_TRAIT_DELETED</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Property has been deleted.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ad1e5625daa2fd610eab74feadf36f437" class="nameRef">EJS_TRAIT_FIXED</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Property is not configurable.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a306405354997a557f06e693971b44acd" class="nameRef">EJS_TRAIT_GETTER</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Property is a getter.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a6398a0fbff1fccbf080015c2aff80736" class="nameRef">EJS_TRAIT_HIDDEN</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>!Enumerable.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a58cdf52f8981a926b2c601f384065c26" class="nameRef">EJS_TRAIT_INITIALIZED</a>&nbsp;&nbsp;&nbsp;0x20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Readonly property has been initialized.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1af95b51dc9dcff0ac50db6e89f9c23c1d" class="nameRef">EJS_TRAIT_MASK</a>&nbsp;&nbsp;&nbsp;0xFFFFF</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Mask of trait attributes.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a7721e35c734e3c7bdbea77c8057387b7" class="nameRef">EJS_TRAIT_READONLY</a>&nbsp;&nbsp;&nbsp;0x40</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>!Writable (used for const).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a092707d30f247a38d91bbfc4292cba74" class="nameRef">EJS_TRAIT_SETTER</a>&nbsp;&nbsp;&nbsp;0x80</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Property is a settter.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a3ed942bbc1f9c21eed17504e9d588005" class="nameRef">EJS_TRAIT_THROW_NULLS</a>&nbsp;&nbsp;&nbsp;0x100</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Property rejects null.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ac18a07bdd97d0b7ba25fcade4d787496" class="nameRef">EJS_TYPE_BLOCK</a>&nbsp;&nbsp;&nbsp;0x40000000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type is using block helpers.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ac997d3f9c3a446a834ddb8ba71a7b608" class="nameRef">EJS_TYPE_CALLS_SUPER</a>&nbsp;&nbsp;&nbsp;0x100000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Constructor calls super().</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a638f06d2f28831770868afc71d144a21" class="nameRef">EJS_TYPE_DYNAMIC_INSTANCES</a>&nbsp;&nbsp;&nbsp;0x400000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Instances are not sealed and can add properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ae1294caf54693a317864aadaa3f63c6b" class="nameRef">EJS_TYPE_FINAL</a>&nbsp;&nbsp;&nbsp;0x800000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type can&apos;t be subclassed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a664e1381b389a76d3a4e2722cc2cac5d" class="nameRef">EJS_TYPE_FIXUP</a>&nbsp;&nbsp;&nbsp;0x1000000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type needs to inherit base types properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1acadb049f823b73ba271ab5ddb5765d5b" class="nameRef">EJS_TYPE_HAS_CONSTRUCTOR</a>&nbsp;&nbsp;&nbsp;0x2000000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type has a constructor.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1afa34c1d06d3a6ce89c4df07813be8cfd" class="nameRef">EJS_TYPE_HAS_INSTANCE_VARS</a>&nbsp;&nbsp;&nbsp;0x200000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type has non-method instance vars (state).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1af8eb9f03c3d6e5dc80d424cae4128615" class="nameRef">EJS_TYPE_HAS_TYPE_INITIALIZER</a>&nbsp;&nbsp;&nbsp;0x4000000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type has an initializer.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a89d14b5198626b33de553f4ee0450a74" class="nameRef">EJS_TYPE_IMMUTABLE_INSTANCES</a>&nbsp;&nbsp;&nbsp;UINT64(0x200000000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type has immutable instances.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a22915eb898a186bb8ef643f0cbbdf332" class="nameRef">EJS_TYPE_INTERFACE</a>&nbsp;&nbsp;&nbsp;0x8000000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type is an interface.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a9fa4ec52a31ee1d007cc49516a776498" class="nameRef">EJS_TYPE_MUTABLE</a>&nbsp;&nbsp;&nbsp;0x80000000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type is mutable.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a2a42caaa502805023075af7f2808cb19" class="nameRef">EJS_TYPE_MUTABLE_INSTANCES</a>&nbsp;&nbsp;&nbsp;UINT64(0x100000000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type has mutable instances.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a446305bb25ae21f8f0dfaff4fdf792cc" class="nameRef">EJS_TYPE_NUMERIC_INDICIES</a>&nbsp;&nbsp;&nbsp;UINT64(0x800000000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type is using numeric indicies for properties.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ac43c97bf73bd3839223c73ae42b24eed" class="nameRef">EJS_TYPE_OBJ</a>&nbsp;&nbsp;&nbsp;0x10000000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type is using object helpers.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ab89f9f26c96ab126feef87817e92c4d1" class="nameRef">EJS_TYPE_POT</a>&nbsp;&nbsp;&nbsp;0x20000000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type is using pot helpers.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a9bc74a2d9b6245bbc21411ee92917db4" class="nameRef">EJS_TYPE_VIRTUAL_SLOTS</a>&nbsp;&nbsp;&nbsp;UINT64(0x400000000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Type is unsing virtual slots.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aa50fc4411fc6e651069c645f08c1fded" class="nameRef">EJS_WORKER_BEGIN</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Worker state before starting.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a1f530b502f4c748cb0567c1b871cd4ec" class="nameRef">EJS_WORKER_CLOSED</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Worker state when finished.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ab729da9f0c66f0a353e9731a9100b9ac" class="nameRef">EJS_WORKER_COMPLETE</a>&nbsp;&nbsp;&nbsp;4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Worker state when completed all messages.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1aac2c8d6907b5143f2b9b3171718b323f" class="nameRef">EJS_WORKER_STARTED</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Worker state once started a script.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a081fec38c4feb675b489edcb2fc7c041" class="nameRef">EJS_XML_ATTRIBUTE</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>XML node is an attribute.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a9f3142262f5f961d0f150404cd5344c0" class="nameRef">EJS_XML_COMMENT</a>&nbsp;&nbsp;&nbsp;5</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>XML node is a comment.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a1adde7da255938d931d8c8d5bbca5c5a" class="nameRef">EJS_XML_ELEMENT</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>XML node is an element.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a67f5fc6114514ec3f2e625fca8aeb288" class="nameRef">EJS_XML_LIST</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>XML node is a list.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1ad7be5076c3dbba2a6f1509e2dc20ac14" class="nameRef">EJS_XML_PROCESSING</a>&nbsp;&nbsp;&nbsp;6</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>XML node is a processing instruction.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1afeb47b5983c5b536ba6fd3a9301452f5" class="nameRef">EJS_XML_TEXT</a>&nbsp;&nbsp;&nbsp;4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>XML node is text.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a5ec15161cf0ee82a4918cb672dd781ea" class="nameRef">ME_MAX_EJS_STACK</a>&nbsp;&nbsp;&nbsp;(1024 * 32)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Stack size without MMU.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#ejscript_8h_1a6bde1e4f1d363195e2e4b5ffd5543d9e" class="nameRef">ME_NUM_TYPE</a>&nbsp;&nbsp;&nbsp;double</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Configured numeric type.</td></tr>
  </table>
<h1>Ejs</h1>
<a name="group___ejs"></a>
<div class="api">
  <div class="prototype">Ejs</div>
  <div class="apiDetail">
<p>Ejsript VM Structure.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Ejs structure contains the state for a single interpreter. The <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a> routine may be used to create multiple interpreters and returns a reference to be used in subsequent Ejscript API calls.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">uint</td><td><td>abandoned</td><td>
Pooled VM is released awaiting GC.
</td>
    <tr><td class="param">int</td><td><td>argc</td><td>
Count of command line args.
</td>
    <tr><td class="param">cchar **</td><td><td>argv</td><td>
Command line args (not alloced).
</td>
    <tr><td class="param">cchar *</td><td><td>bootSearch</td><td>
Module search when bootstrapping the VM (not alloced).
</td>
    <tr><td class="param">cchar *</td><td><td>className</td><td>
Name of a specific class to run for a program.
</td>
    <tr><td class="param">uint</td><td><td>compiling</td><td>
Currently executing the compiler.
</td>
    <tr><td class="param">uint</td><td><td>configSet</td><td>
Config properties defined.
</td>
    <tr><td class="param">uint</td><td><td>destroying</td><td>
Interpreter is being destroyed.
</td>
    <tr><td class="param">MprDispatcher *</td><td><td>dispatcher</td><td>
Event dispatcher.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>doc</td><td>
Documentation.
</td>
    <tr><td class="param">uint</td><td><td>dontExit</td><td>
Prevent App.exit() from exiting.
</td>
    <tr><td class="param">uint</td><td><td>empty</td><td>
Interpreter will be created empty.
</td>
    <tr><td class="param">char *</td><td><td>errorMsg</td><td>
Error message.
</td>
    <tr><td class="param">EjsAny *</td><td><td>exception</td><td>
Pointer to exception object.
</td>
    <tr><td class="param">EjsAny *</td><td><td>exceptionArg</td><td>
Exception object for catch block.
</td>
    <tr><td class="param">uint</td><td><td>exiting</td><td>
VM should exit.
</td>
    <tr><td class="param">int</td><td><td>exitStatus</td><td>
Status to exit().
</td>
    <tr><td class="param">int</td><td><td>firstGlobal</td><td>
First global to examine for GC.
</td>
    <tr><td class="param">int</td><td><td>flags</td><td>
Execution flags.
</td>
    <tr><td class="param">int</td><td><td>gc</td><td>
GC required (don&apos;t make bit field).
</td>
    <tr><td class="param">EjsAny *</td><td><td>global</td><td>
The &quot;global&quot; object.
</td>
    <tr><td class="param">uint</td><td><td>hasError</td><td>
Interpreter has an initialization error.
</td>
    <tr><td class="param">uint</td><td><td>hosted</td><td>
Interp is hosted (webserver).
</td>
    <tr><td class="param">char *</td><td><td>hostedDocuments</td><td>
Documents directory for hosted HttpServer.
</td>
    <tr><td class="param">char *</td><td><td>hostedHome</td><td>
Home directory for hosted HttpServer.
</td>
    <tr><td class="param">Http *</td><td><td>http</td><td>
Http service object (copy of <a class="ref" href="#struct_ejs_service_1a27e70fcc40460b32d5bec29827a292d9">EjsService.http</a>).
</td>
    <tr><td class="param">void *</td><td><td>httpServer</td><td>
HttpServer instance when VM is embedded.
</td>
    <tr><td class="param">MprList *</td><td><td>httpServers</td><td>
Configured HttpServers.
</td>
    <tr><td class="param">uint</td><td><td>initialized</td><td>
Interpreter fully initialized and not empty.
</td>
    <tr><td class="param">int</td><td><td>joining</td><td>
In Worker.join.
</td>
    <tr><td class="param">void *</td><td><td>loadData</td><td>
Arg to load callbacks.
</td>
    <tr><td class="param">cchar *</td><td><td>methodName</td><td>
Name of a specific method to run for a program.
</td>
    <tr><td class="param">MprList *</td><td><td>modules</td><td>
Loaded modules.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Multithread locking.
</td>
    <tr><td class="param">char *</td><td><td>name</td><td>
Unique interpreter name.
</td>
    <tr><td class="param">EjsAny *</td><td><td>result</td><td>
Last expression result.
</td>
    <tr><td class="param">struct EjsArray *</td><td><td>search</td><td>
Module load search path.
</td>
    <tr><td class="param">int</td><td><td>serializeDepth</td><td>
Serialization depth.
</td>
    <tr><td class="param">struct <a class="ref" href="#struct_ejs_service">EjsService</a> *</td><td><td>service</td><td>
Back pointer to the service.
</td>
    <tr><td class="param">int</td><td><td>spreadArgs</td><td>
Count of spread args.
</td>
    <tr><td class="param">void *</td><td><td>sqlite</td><td>
Sqlite context information.
</td>
    <tr><td class="param">struct <a class="ref" href="#struct_ejs_state">EjsState</a> *</td><td><td>state</td><td>
Current evaluation state and stack.
</td>
    <tr><td class="param">MprList *</td><td><td>workers</td><td>
Worker interpreters.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4"></a>
<div class="api">
  <div class="prototype">
    int
    ejsAddImmutable
(struct Ejs *ejs, int slotNum, <a href="#group___ejs_name" class="ref">EjsName</a> qname, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Add an immutable reference.</p>
    <dl><dt><b>Description</b>:</dt><dd>Ejscript keeps a set of immutable objects that are shared across virtual machines. This call adds an object to that set. If the object already exists in the immutable set, its slot number if returned.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">slotNum</td><td>Unique slot number for the object.</td>
    <tr><td class="param">qname</td><td>Qualified name for the object.</td>
    <tr><td class="param">obj</td><td>Object to store.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The actual slot number allocated for the object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga80b979e0f3538b195f20eecd30cfaf66"></a>
<div class="api">
  <div class="prototype">
    int
    ejsBlockGC
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Block garbage collection.</p>
    <dl><dt><b>Description</b>:</dt><dd>Garbage collection requires cooperation from threads. However, the VM will normally permit garbage collection at various points in the execution of byte code. This call block garbage collection while allowing program execution to continue. This is useful for short periods when transient objects are not reachable by the GC marker.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpeter object returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The previous GC blocked state.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4"></a>
<div class="api">
  <div class="prototype">
    void
    ejsClearException
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Clear an exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs" class="ref">Ejs</a> *
    ejsCloneVM
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Clone an ejs virtual machine.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a virtual machine interpreter boy cloning an existing interpreter. Cloning is a fast way to create a new interpreter. This saves memory and speeds initialization.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Base VM upon which to base the new VM.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new interpreter.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga98a567fe16481c6bf5368749d831ae77"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs" class="ref">Ejs</a> *
    ejsCreateVM
(int argc, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> **argv, int flags)
  </div>
  <div class="apiDetail">
<p>Create an ejs virtual machine.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a virtual machine interpreter object to evalute Ejscript programs. Ejscript supports multiple interpreters.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">argc</td><td>Count of command line argumements in argv.</td>
    <tr><td class="param">argv</td><td>Command line arguments.</td>
    <tr><td class="param">flags</td><td>Optional flags to modify the interpreter behavior. Valid flags are: <ul><li>EJS_FLAG_COMPILER - Interpreter will compile code from source </li><li>EJS_FLAG_NO_EXE - Don&apos;t execute any code. Just compile. </li><li>EJS_FLAG_DOC - Load documentation from modules </li><li>EJS_FLAG_NOEXIT - App should service events and not exit unless explicitly instructed </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new interpreter.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58"></a>
<div class="api">
  <div class="prototype">
    int
    ejsEvalFile
(<a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
  </div>
  <div class="apiDetail">
<p>Evaluate a file.</p>
    <dl><dt><b>Description</b>:</dt><dd>Evaluate a file containing an Ejscript. This requires linking with the Ejscript compiler library (libec).</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">path</td><td>Filename of the script to evaluate.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Return zero on success. Otherwise return a negative Mpr error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8"></a>
<div class="api">
  <div class="prototype">
    int
    ejsEvalModule
(<a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
  </div>
  <div class="apiDetail">
<p>Evaluate a module.</p>
    <dl><dt><b>Description</b>:</dt><dd>Evaluate a module containing compiled Ejscript.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">path</td><td>Filename of the module to evaluate.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Return zero on success. Otherwise return a negative Mpr error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1"></a>
<div class="api">
  <div class="prototype">
    int
    ejsEvalScript
(<a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *script)
  </div>
  <div class="apiDetail">
<p>Evaluate a script.</p>
    <dl><dt><b>Description</b>:</dt><dd>Evaluate a script. This requires linking with the Ejscript compiler library (libec).</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">script</td><td>Script to evaluate.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Return zero on success. Otherwise return a negative Mpr error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga913f7898999e35964f1e93783808bda5"></a>
<div class="api">
  <div class="prototype">
    void
    ejsExit
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int status)
  </div>
  <div class="apiDetail">
<p>Instruct the interpreter to exit.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will instruct the interpreter to cease interpreting any further script code.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpeter object returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">status</td><td>Reserved and ignored.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga219502088780c6399a9a49241c477dbe"></a>
<div class="api">
  <div class="prototype">
    void *
    ejsGetHandle
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Get the hosting handle.</p>
    <dl><dt><b>Description</b>:</dt><dd>The interpreter can store a hosting handle. This is typically a web server object if hosted inside a web server.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpeter object returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Hosting handle.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1gae497b3290296e546d4fe8bc2976e1485"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetImmutable
(struct Ejs *ejs, int slotNum)
  </div>
  <div class="apiDetail">
<p>Get an immutable object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Ejscript keeps a set of immutable objects that are shared across virtual machines. This call retrieves an immutable object from that set.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">slotNum</td><td>Unique slot number for the object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Obj Immutable object found at the given slotNum.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga99cd2c246231903eace6f66550be8a80"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetImmutableByName
(struct Ejs *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname)
  </div>
  <div class="apiDetail">
<p>Get an immutable object by name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Ejscript keeps a set of immutable objects that are shared across virtual machines. This call retrieves an immutable object from that set.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">qname</td><td>Qualified name for the object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Obj Immutable object found at the given slotNum.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga08a903e481dc51792c38726ebed0f850"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetVarByName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#struct_ejs_lookup" class="ref">EjsLookup</a> *lookup)
  </div>
  <div class="apiDetail">
<p>Get a variable by name.</p>
    <dl><dt><b>Description</b>:</dt><dd>This looks for a property name in an object, its prototype or base classes.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to search.</td>
    <tr><td class="param">name</td><td>Property name to search for.</td>
    <tr><td class="param">lookup</td><td>Lookup residuals.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The variable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga95f98d86be206637b6d6a1e0d5c32fce"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLoadScriptFile
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *script, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *cache, int flags)
  </div>
  <div class="apiDetail">
<p>Load a script from a file.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will read a script from a file, compile it and run. If the cache path argument is provided, the compiled module will be saved to this path.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">script</td><td>Script pathname.</td>
    <tr><td class="param">cache</td><td>Cache pathname to save compiled module.</td>
    <tr><td class="param">flags</td><td>Compilation control flags. Select from: <ul><li>EC_FLAGS_BIND - Bind global references and type/object properties </li><li>EC_FLAGS_DEBUG - Generate symbolic debugging information </li><li>EC_FLAGS_MERGE - Merge all output onto one output file </li><li>EC_FLAGS_NO_OUT - Discard all output </li><li>EC_FLAGS_PARSE_ONLY - Only parse source. Don&apos;t generate code </li><li>EC_FLAGS_THROW - Throw errors when compiling. Used for eval() </li><li>EC_FLAGS_VISIBLE - Make global vars visible to all </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga7c5b84ce75c444db377ce916ee869cc5"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLoadScriptLiteral
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *script, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *cache, int flags)
  </div>
  <div class="apiDetail">
<p>Load a script from a string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will compile the script string and then run it. If the cache path argument is provided, the compiled module will be saved to this path.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">script</td><td>Script string.</td>
    <tr><td class="param">cache</td><td>Cache pathname to save compiled module.</td>
    <tr><td class="param">flags</td><td>Compilation control flags. Select from: <ul><li>EC_FLAGS_BIND - Bind global references and type/object properties </li><li>EC_FLAGS_DEBUG - Generate symbolic debugging information </li><li>EC_FLAGS_MERGE - Merge all output onto one output file </li><li>EC_FLAGS_NO_OUT - Discard all output </li><li>EC_FLAGS_PARSE_ONLY - Only parse source. Don&apos;t generate code </li><li>EC_FLAGS_THROW - Throw errors when compiling. Used for eval() </li><li>EC_FLAGS_VISIBLE - Make global vars visible to all </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga3f98404821697c410c67d2a6bc2873f4"></a>
<div class="api">
  <div class="prototype">
    void
    ejsLog
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Enter a message into the log file.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Message format string.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga290007859621b3ce97f822c38f20d217"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLookupScope
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#struct_ejs_lookup" class="ref">EjsLookup</a> *lookup)
  </div>
  <div class="apiDetail">
<p>Lookup a variable using the current scope.</p>
    <dl><dt><b>Description</b>:</dt><dd>This looks for a property name in the current lexical scope.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">name</td><td>Property name to search for.</td>
    <tr><td class="param">lookup</td><td>Lookup residuals.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1gad15992ad8fd6dd0abce3f824a828c041"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLookupVar
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#struct_ejs_lookup" class="ref">EjsLookup</a> *lookup)
  </div>
  <div class="apiDetail">
<p>Lookup a variable.</p>
    <dl><dt><b>Description</b>:</dt><dd>This looks for a property name in an object, its prototype or base classes. If name.space is null, the variable is searched using the set of currently open namespaces.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to search.</td>
    <tr><td class="param">name</td><td>Property name to search for.</td>
    <tr><td class="param">lookup</td><td>Lookup residuals.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLookupVarWithNamespaces
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#struct_ejs_lookup" class="ref">EjsLookup</a> *lookup)
  </div>
  <div class="apiDetail">
<p>Lookup a variable in an object (only).</p>
    <dl><dt><b>Description</b>:</dt><dd>This looks for a property name in an object, its prototype or base classes. If name.space is null, the variable is searched using the set of currently open namespaces.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to search.</td>
    <tr><td class="param">name</td><td>Property name to search for.</td>
    <tr><td class="param">lookup</td><td>Lookup residuals.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1gaa8b22395b62585cbd8edabfea237e48d"></a>
<div class="api">
  <div class="prototype">
    void
    ejsReportError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, char *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Report an error message using the MprLog error channel.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will emit an error message of the format: <ul><li>program:line:errorCode:SEVERITY: message </li></ul></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpeter object returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Is an alternate printf style format to emit if the interpreter has no valid error message.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1gae495143fc6f3c61d4884289f8fe60450"></a>
<div class="api">
  <div class="prototype">
    int
    ejsRun
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Run a script.</p>
    <dl><dt><b>Description</b>:</dt><dd>Run a script that has previously ben compiled by ecCompile.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpeter object returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a non-zero Mpr error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1ga3c02a492aa3f1d710feefc959730ad73"></a>
<div class="api">
  <div class="prototype">
    void
    ejsSetDispatcher
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="mpr.html#group___mpr_dispatcher" class="ref">MprDispatcher</a> *dispatcher)
  </div>
  <div class="apiDetail">
<p>Set the MPR dispatcher to use for an interpreter.</p>
    <dl><dt><b>Description</b>:</dt><dd>Interpreters serialize event activity within a dispatcher.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1gad9e9706ca5052d72c1416219fffd0c31"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsThrowException
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *error)
  </div>
  <div class="apiDetail">
<p>Throw an exception.</p>
    <dl><dt><b>Description</b>:</dt><dd>Throw an exception object.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpeter object returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">error</td><td>Exception argument object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The exception argument for chaining.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_1gab461a266bf2f25cea1055152c7422cea"></a>
<div class="api">
  <div class="prototype">
    void
    ejsUnblockGC
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int blocked)
  </div>
  <div class="apiDetail">
<p>Unblock garbage collection.</p>
    <dl><dt><b>Description</b>:</dt><dd>Unblock garbage collection that was blocked via <a class="ref" href="#group___ejs_1ga80b979e0f3538b195f20eecd30cfaf66">ejsBlockGC</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpeter object returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">blocked</td><td>Blocked state to re-establish.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_1ga98e91f89e0549f029ceac314e19bb4a4" class="ref">ejsAddImmutable</a>, <a href="#group___ejs_1gaf669b9460af3aeb8ee17b38c285f82b4" class="ref">ejsClearException</a>, <a href="#group___ejs_1ga38ea40a46f5f5cd037c45f65ef6d42f9" class="ref">ejsCloneVM</a>, <a href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77" class="ref">ejsCreateVM</a>, <a href="#group___ejs_1ga2dd387ab6e232ecbe44b901cd5b01e58" class="ref">ejsEvalFile</a>, <a href="#group___ejs_1ga9ab6a1f6c32ecbadc72d1f09495b85b8" class="ref">ejsEvalModule</a>, <a href="#group___ejs_1gac9d73946c6d81f299103daa26fcbc7f1" class="ref">ejsEvalScript</a>, <a href="#group___ejs_1ga913f7898999e35964f1e93783808bda5" class="ref">ejsExit</a>, <a href="#group___ejs_1gae497b3290296e546d4fe8bc2976e1485" class="ref">ejsGetImmutable</a>, <a href="#group___ejs_1ga99cd2c246231903eace6f66550be8a80" class="ref">ejsGetImmutableByName</a>, <a href="#group___ejs_1ga08a903e481dc51792c38726ebed0f850" class="ref">ejsGetVarByName</a>, <a href="#group___ejs_1ga3f98404821697c410c67d2a6bc2873f4" class="ref">ejsLog</a>, <a href="#group___ejs_1ga290007859621b3ce97f822c38f20d217" class="ref">ejsLookupScope</a>, <a href="#group___ejs_1gad15992ad8fd6dd0abce3f824a828c041" class="ref">ejsLookupVar</a>, <a href="#group___ejs_1ga5b387e190dba4fa46d0a6ed849523e07" class="ref">ejsLookupVarWithNamespaces</a>, <a href="#group___ejs_1gaa8b22395b62585cbd8edabfea237e48d" class="ref">ejsReportError</a>, <a href="#group___ejs_1gae495143fc6f3c61d4884289f8fe60450" class="ref">ejsRun</a>, <a href="#group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9" class="ref">ejsRunProgram</a>, <a href="#group___ejs_1ga3c02a492aa3f1d710feefc959730ad73" class="ref">ejsSetDispatcher</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a>, <a href="#group___ejs_1gad9e9706ca5052d72c1416219fffd0c31" class="ref">ejsThrowException</a></dd></dl>
  </div>
</div>
<h1>EjsArray</h1>
<a name="group___ejs_array"></a>
<div class="api">
  <div class="prototype">EjsArray</div>
  <div class="apiDetail">
<p>Array class.</p>
    <dl><dt><b>Description</b>:</dt><dd>Arrays provide a resizable, integer indexed, in-memory store for objects. An array can be treated as a stack (FIFO or LIFO) or a list (ordered). Insertions can be done at the beginning or end of the stack or at an indexed location within a list. The Array class can store objects with numerical indicies and can also store any named properties. The named properties are stored in the obj field, whereas the numeric indexed values are stored in the data field. Array extends EjsObj and has all the capabilities of EjsObj.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsObj **</td><td><td>data</td><td>
Array elements.
</td>
    <tr><td class="param">int</td><td><td>length</td><td>
Array length property.
</td>
    <tr><td class="param">EjsPot</td><td><td>pot</td><td>
Property storage.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70"></a>
<div class="api">
  <div class="prototype">
    int
    ejsAddItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *item)
  </div>
  <div class="apiDetail">
<p>Add an item to the array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will add a new item to the end of the array and grow the array if required.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Array to modify.</td>
    <tr><td class="param">item</td><td>Object item to add.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The item index in the array.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1"></a>
<div class="api">
  <div class="prototype">
    int
    ejsAppendArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *dest, <a href="#group___ejs_array" class="ref">EjsArray</a> *src)
  </div>
  <div class="apiDetail">
<p>Append an array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will append the contents of the source array to the destination array.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">dest</td><td>Destination array to modify.</td>
    <tr><td class="param">src</td><td>Source array from which to copy elements.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad"></a>
<div class="api">
  <div class="prototype">
    void
    ejsClearArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap)
  </div>
  <div class="apiDetail">
<p>Clear an array and remove all items.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to modify.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_array" class="ref">EjsArray</a> *
    ejsCloneArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)
  </div>
  <div class="apiDetail">
<p>Clone an array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will create a new array and copy the contents from the source array. Both array elements and object properties are copied. If deep is true, the call creates a distinct clone with no shared elements. If deep is false, object references will be copied and shared between the source and cloned array.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Array source.</td>
    <tr><td class="param">deep</td><td>Set to true to clone each element of the array. Otherwise object references will have their references copied and not the reference targets.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new array.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_array" class="ref">EjsArray</a> *
    ejsCreateArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int size)
  </div>
  <div class="apiDetail">
<p>Create an array.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">size</td><td>Initial size of the array.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new array object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetFirstItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap)
  </div>
  <div class="apiDetail">
<p>Get the first item from an array.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga5746695bda59a012c676df397543d705"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int index)
  </div>
  <div class="apiDetail">
<p>Get an item from an array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will retrieve the item at the index location.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to examine.</td>
    <tr><td class="param">index</td><td>Location to retrieve.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetLastItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap)
  </div>
  <div class="apiDetail">
<p>Get the last item from an array.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga3a823345abdbbe6043de660356d163cc"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetNextItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int *next)
  </div>
  <div class="apiDetail">
<p>Get the next item from an array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will retrieve the item at *next and increment *next.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to examine.</td>
    <tr><td class="param">next</td><td>Pointer to an integer index. The *next location is updated to prepare to advance to the next element. The *next location should be initialized to zero for the first call to an ejsGetNextItem sequence.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga29dd01855d3fc312ccadee7003544144"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetPrevItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int *prev)
  </div>
  <div class="apiDetail">
<p>Get the previous item from an array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will retrieve the item at *prev and increment *prev.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to examine.</td>
    <tr><td class="param">prev</td><td>Pointer to an integer index. The *prev location is updated to prepare to advance to the previous element. The *prev location should be initialized to zero for the first call to an ejsGetPrevItem sequence.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913"></a>
<div class="api">
  <div class="prototype">
    int
    ejsInsertItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int index, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *item)
  </div>
  <div class="apiDetail">
<p>Insert an item.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will insert an item at the given index. Items at the index and above will be moved upward to make room for the inserted item.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to modify.</td>
    <tr><td class="param">index</td><td>Index at which to insert the item. The item will be inserted at the &quot;index&quot; position.</td>
    <tr><td class="param">item</td><td>Item to insert.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The index.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga64db5544fc6c25811c91b9c90f62c55c"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsJoinArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#group___ejs_string" class="ref">EjsString</a> *join)
  </div>
  <div class="apiDetail">
<p>Join an array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will join the array elements using the given join string separator.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to modify.</td>
    <tr><td class="param">join</td><td>String to use as a delimiter between elements.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The result string.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLookupItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *item)
  </div>
  <div class="apiDetail">
<p>Lookup an item in the array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This search for the given item (reference) in the array. NOTE: currently numbers are implemented as object references and so using this routine to search for a number reference will not work.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to examine.</td>
    <tr><td class="param">item</td><td>Item to search for.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A positive array element index. Otherwise return MPR_ERR_CANT_FIND.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57"></a>
<div class="api">
  <div class="prototype">
    int
    ejsRemoveItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *item, int compact)
  </div>
  <div class="apiDetail">
<p>Remove an item from the array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will remove an item from the array. The array will not be compacted.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to modify.</td>
    <tr><td class="param">item</td><td>Item to remove.</td>
    <tr><td class="param">compact</td><td>Set to true to compact following properties.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The index where the item was found. Otherwise return MPR_ERR_CANT_FIND.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8"></a>
<div class="api">
  <div class="prototype">
    int
    ejsRemoveItemAtPos
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, int index, int compact)
  </div>
  <div class="apiDetail">
<p>Remove an item at a given index from the array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will remove an item from the array. The array will not be compacted.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to modify.</td>
    <tr><td class="param">index</td><td>Array index from which to remove the item.</td>
    <tr><td class="param">compact</td><td>Set to true to compact following properties.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The index where the item was found. Otherwise return MPR_ERR_CANT_FIND.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1gab31dedace83a801464ad335f68860da6"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_array" class="ref">EjsArray</a> *
    ejsRemoveItems
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap, <a href="#group___ejs_array" class="ref">EjsArray</a> *items)
  </div>
  <div class="apiDetail">
<p>Remove items from the array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will remove items from the array. The array will be compacted.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to modify.</td>
    <tr><td class="param">items</td><td>Array items to remove.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The original array.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a>, <a href="#group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1" class="ref">ejsRemoveLastItem</a></dd></dl>
  </div>
</div>
<a name="group___ejs_array_1ga06a6b2e015b4932f4071c446be76dfd1"></a>
<div class="api">
  <div class="prototype">
    int
    ejsRemoveLastItem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_array" class="ref">EjsArray</a> *ap)
  </div>
  <div class="apiDetail">
<p>Remove the last item from the array.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will remove the last item from the array. The array will not be compacted.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ap</td><td>Source array to modify.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The index where the item was found. Otherwise return MPR_ERR_CANT_FIND.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_array" class="ref">EjsArray</a>, <a href="#group___ejs_array_1ga009398582dcd95d0e1e4bbdba42ccc70" class="ref">ejsAddItem</a>, <a href="#group___ejs_array_1ga86bd0f050355eee1a5ec88047f0e6cd1" class="ref">ejsAppendArray</a>, <a href="#group___ejs_array_1ga34a9d4131fab73ae76a09f66039a71ad" class="ref">ejsClearArray</a>, <a href="#group___ejs_array_1ga5d858aa540449fe0aea905833c2a9b48" class="ref">ejsCloneArray</a>, <a href="#group___ejs_array_1ga43cacbf358fdf4d364706dd01a5ebdc0" class="ref">ejsCreateArray</a>, <a href="#group___ejs_array_1gac6508d102cf522ce7a9c1d5c6df5ff09" class="ref">ejsGetFirstItem</a>, <a href="#group___ejs_array_1ga5746695bda59a012c676df397543d705" class="ref">ejsGetItem</a>, <a href="#group___ejs_array_1gaaa818bc25cfa75a0da2872985cc764db" class="ref">ejsGetLastItem</a>, <a href="#group___ejs_array_1ga3a823345abdbbe6043de660356d163cc" class="ref">ejsGetNextItem</a>, <a href="#group___ejs_array_1ga29dd01855d3fc312ccadee7003544144" class="ref">ejsGetPrevItem</a>, <a href="#group___ejs_array_1ga1231ed0a94e14f535dc7f773ce598913" class="ref">ejsInsertItem</a>, <a href="#group___ejs_array_1gaa5a3dc4d75d615587aa1e9f8e27a77f3" class="ref">ejsLookupItem</a>, <a href="#group___ejs_array_1ga623fd2c2fcf6a5a66b55d670d0dffb57" class="ref">ejsRemoveItem</a>, <a href="#group___ejs_array_1ga365f933b4d0802d28ab03d094864f2f8" class="ref">ejsRemoveItemAtPos</a></dd></dl>
  </div>
</div>
<h1>EjsBlock</h1>
<a name="group___ejs_block"></a>
<div class="api">
  <div class="prototype">EjsBlock</div>
  <div class="apiDetail">
<p>Block class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The block class is the base class for all program code block scope objects. This is an internal class and not exposed to the script programmer. Blocks (including types) may describe their properties via traits. The traits store the property type and access attributes and are stored in EjsBlock which is a sub class of EjsObj. See ejsBlock.c for details.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_block_1ga5534bcfc33909ecb2ee8f95dda0a506c" class="ref">ejsIsBlock</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">MprList</td><td><td>namespaces</td><td>
Current list of namespaces open in this block of properties.
</td>
    <tr><td class="param">uint</td><td><td>nobind</td><td>
Don&apos;t bind to properties in this block.
</td>
    <tr><td class="param">EjsPot</td><td><td>pot</td><td>
Property storage.
</td>
    <tr><td class="param">struct EjsBlock *</td><td><td>prev</td><td>
Previous block in activation chain.
</td>
    <tr><td class="param">EjsObj *</td><td><td>prevException</td><td>
Previous exception if nested exceptions.
</td>
    <tr><td class="param">uchar *</td><td><td>restartAddress</td><td>
Restart instruction address.
</td>
    <tr><td class="param">struct EjsBlock *</td><td><td>scope</td><td>
Lexical scope chain for this block.
</td>
    <tr><td class="param">EjsObj **</td><td><td>stackBase</td><td>
Start of stack in this block.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_block_1ga5534bcfc33909ecb2ee8f95dda0a506c"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsBlock
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj)
  </div>
  <div class="apiDetail">
<p>Determine if a variable is a block.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call tests if the variable is a block.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the variable is based on EjsBlock.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_block" class="ref">EjsBlock</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a></dd></dl>
  </div>
</div>
<h1>EjsBoolean</h1>
<a name="group___ejs_boolean"></a>
<div class="api">
  <div class="prototype">EjsBoolean</div>
  <div class="apiDetail">
<p>Boolean class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Boolean class provides the base class for the boolean values &quot;true&quot; and &quot;false&quot;. EjsBoolean is a primitive native type and extends EjsObj. It is still logically an Object, but implements Object properties and methods itself. Only two instances of the boolean class are ever created created these are referenced as ejs-&gt;trueValue and ejs-&gt;falseValue.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_boolean_1ga52a502e93b5f5a05d5619ce53fbcfe48" class="ref">ejsCreateBoolean</a>, <a href="#group___ejs_boolean_1ga5797d3e7d316cf893218453530939d70" class="ref">ejsGetBoolean</a>, <a href="#group___ejs_boolean_1ga9281b223fa8eff9c0c9f1ea176576d93" class="ref">ejsToBoolean</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">bool</td><td><td>value</td><td>
Boolean value.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_boolean_1ga52a502e93b5f5a05d5619ce53fbcfe48"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_boolean" class="ref">EjsBoolean</a> *
    ejsCreateBoolean
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int value)
  </div>
  <div class="apiDetail">
<p>Create a boolean.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a boolean value. This will not actually create a new boolean instance as there can only ever be two boolean instances (true and false). Boolean properties are immutable in Ejscript and so this routine will simply return the appropriate pre-created true or false boolean value.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>Desired boolean value. Set to 1 for true and zero for false.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_boolean" class="ref">EjsBoolean</a>, <a href="#group___ejs_boolean_1ga5797d3e7d316cf893218453530939d70" class="ref">ejsGetBoolean</a>, <a href="#group___ejs_boolean_1ga9281b223fa8eff9c0c9f1ea176576d93" class="ref">ejsToBoolean</a></dd></dl>
  </div>
</div>
<a name="group___ejs_boolean_1ga5797d3e7d316cf893218453530939d70"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsGetBoolean
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Get the C boolean value from a boolean object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Boolean variable to access.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True or false.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_boolean" class="ref">EjsBoolean</a>, <a href="#group___ejs_boolean_1ga52a502e93b5f5a05d5619ce53fbcfe48" class="ref">ejsCreateBoolean</a>, <a href="#group___ejs_boolean_1ga9281b223fa8eff9c0c9f1ea176576d93" class="ref">ejsToBoolean</a></dd></dl>
  </div>
</div>
<a name="group___ejs_boolean_1ga9281b223fa8eff9c0c9f1ea176576d93"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_boolean" class="ref">EjsBoolean</a> *
    ejsToBoolean
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Cast a variable to a boolean.</p>
    <dl><dt><b>Description</b>:</dt><dd></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to cast.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new boolean object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_boolean" class="ref">EjsBoolean</a>, <a href="#group___ejs_boolean_1ga52a502e93b5f5a05d5619ce53fbcfe48" class="ref">ejsCreateBoolean</a>, <a href="#group___ejs_boolean_1ga5797d3e7d316cf893218453530939d70" class="ref">ejsGetBoolean</a></dd></dl>
  </div>
</div>
<h1>EjsByteArray</h1>
<a name="group___ejs_byte_array"></a>
<div class="api">
  <div class="prototype">EjsByteArray</div>
  <div class="apiDetail">
<p>ByteArray class.</p>
    <dl><dt><b>Description</b>:</dt><dd>ByteArrays provide a resizable, integer indexed, in-memory store for bytes. ByteArrays can be used as a simple array type to store and encode data as bytes or they can be used as buffered Streams implementing the Stream interface. <br/><br/>
 When used as a simple byte array, the ByteArray class offers a low level set of methods to insert and extract bytes. The index operator [] can be used to access individual bytes and the copyIn and copyOut methods can be used to get and put blocks of data. In this mode, the read and write position properties are ignored. Access to the byte array is from index zero up to the size defined by the length property. When constructed, the ByteArray can be designated as resizable, in which case the initial size will grow as required to accomodate data and the length property will be updated accordingly. <br/><br/>
 When used as a Stream, the byte array additional write methods to store data at the location specified by the $writePosition property and read methods to read from the $readPosition property. The $available method indicates how much data is available between the read and write position pointers. The $reset method can reset the pointers to the start of the array. When used with for/in, ByteArrays will iterate or enumerate over the available data between the read and write pointers. <br/><br/>
 If numeric values are read or written, they will be encoded according to the value of the endian property which can be set to either LittleEndian or BigEndian. <br/><br/>
 In Stream mode ByteArrays can be configured to run in sync or async mode. Adding observers via the $addObserver method will put a stream into async mode. Events will then be issued for close, EOF, read and write events.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="ref">ejsCopyToByteArray</a>, <a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="ref">ejsCreateByteArray</a>, <a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="ref">ejsGetByteArrayAvailableData</a>, <a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="ref">ejsGetByteArrayRoom</a>, <a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="ref">ejsGrowByteArray</a>, <a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="ref">ejsMakeRoomInByteArray</a>, <a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="ref">ejsResetByteArray</a>, <a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="ref">ejsSetByteArrayPositions</a>, <a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="ref">ejsWriteToByteArray</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>async</td><td>
Async mode.
</td>
    <tr><td class="param">EjsObj *</td><td><td>emitter</td><td>
Event emitter for listeners.
</td>
    <tr><td class="param">int</td><td><td>endian</td><td>
Endian encoding.
</td>
    <tr><td class="param">int</td><td><td>growInc</td><td>
Current read position.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">ssize</td><td><td>readPosition</td><td>
Current read position.
</td>
    <tr><td class="param">bool</td><td><td>resizable</td><td>
Aray is resizable.
</td>
    <tr><td class="param">ssize</td><td><td>size</td><td>
Size property.
</td>
    <tr><td class="param">int</td><td><td>swap</td><td>
I/O must swap bytes due to endian byte ordering.
</td>
    <tr><td class="param">uchar *</td><td><td>value</td><td>
Data bytes in the array.
</td>
    <tr><td class="param">ssize</td><td><td>writePosition</td><td>
Current write position.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    ejsCopyToByteArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> offset, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *data, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> length)
  </div>
  <div class="apiDetail">
<p>Copy data into a byte array.</p>
    <dl><dt><b>Description</b>:</dt><dd>Copy data into a byte array at a specified offset.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ba</td><td>Byte array object.</td>
    <tr><td class="param">offset</td><td>Offset in the byte array to which to copy the data.</td>
    <tr><td class="param">data</td><td>Pointer to the source data.</td>
    <tr><td class="param">length</td><td>Length of the data to copy.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Count of bytes written or negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a>, <a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="ref">ejsCreateByteArray</a>, <a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="ref">ejsGetByteArrayAvailableData</a>, <a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="ref">ejsGetByteArrayRoom</a>, <a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="ref">ejsGrowByteArray</a>, <a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="ref">ejsMakeRoomInByteArray</a>, <a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="ref">ejsResetByteArray</a>, <a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="ref">ejsSetByteArrayPositions</a>, <a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="ref">ejsWriteToByteArray</a></dd></dl>
  </div>
</div>
<a name="group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *
    ejsCreateByteArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
  </div>
  <div class="apiDetail">
<p>Create a byte array.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a new byte array instance.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">size</td><td>Initial size of the byte array.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new byte array instance.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a>, <a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="ref">ejsCopyToByteArray</a>, <a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="ref">ejsGetByteArrayAvailableData</a>, <a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="ref">ejsGetByteArrayRoom</a>, <a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="ref">ejsGrowByteArray</a>, <a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="ref">ejsMakeRoomInByteArray</a>, <a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="ref">ejsResetByteArray</a>, <a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="ref">ejsSetByteArrayPositions</a>, <a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="ref">ejsWriteToByteArray</a></dd></dl>
  </div>
</div>
<a name="group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    ejsGetByteArrayAvailableData
(<a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba)
  </div>
  <div class="apiDetail">
<p>Get the number of available bytes.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ba</td><td>Byte array to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The number of bytes of data available to read.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a>, <a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="ref">ejsCopyToByteArray</a>, <a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="ref">ejsCreateByteArray</a>, <a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="ref">ejsGetByteArrayRoom</a>, <a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="ref">ejsGrowByteArray</a>, <a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="ref">ejsMakeRoomInByteArray</a>, <a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="ref">ejsResetByteArray</a>, <a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="ref">ejsSetByteArrayPositions</a>, <a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="ref">ejsWriteToByteArray</a></dd></dl>
  </div>
</div>
<a name="group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    ejsGetByteArrayRoom
(<a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba)
  </div>
  <div class="apiDetail">
<p>Determine the spare room in the byte array for more data.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ba</td><td>Byte array to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The number of bytes the byte array can fit without growing.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a>, <a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="ref">ejsCopyToByteArray</a>, <a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="ref">ejsCreateByteArray</a>, <a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="ref">ejsGetByteArrayAvailableData</a>, <a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="ref">ejsGrowByteArray</a>, <a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="ref">ejsMakeRoomInByteArray</a>, <a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="ref">ejsResetByteArray</a>, <a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="ref">ejsSetByteArrayPositions</a>, <a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="ref">ejsWriteToByteArray</a></dd></dl>
  </div>
</div>
<a name="group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    ejsGrowByteArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
  </div>
  <div class="apiDetail">
<p>Grow the byte array.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ba</td><td>Byte array to grow.</td>
    <tr><td class="param">size</td><td>The requested new size of the byte array.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The new size of the byte array. Otherwise EJS_ERROR if the memory cannot be allocated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a>, <a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="ref">ejsCopyToByteArray</a>, <a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="ref">ejsCreateByteArray</a>, <a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="ref">ejsGetByteArrayAvailableData</a>, <a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="ref">ejsGetByteArrayRoom</a>, <a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="ref">ejsMakeRoomInByteArray</a>, <a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="ref">ejsResetByteArray</a>, <a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="ref">ejsSetByteArrayPositions</a>, <a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="ref">ejsWriteToByteArray</a></dd></dl>
  </div>
</div>
<a name="group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsMakeRoomInByteArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> require)
  </div>
  <div class="apiDetail">
<p>Make room in the byte array for data.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will ensure there is sufficient room in the byte array. If the required number of bytes of spare room is not available, the byte array will grow.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ba</td><td>Byte array to examine.</td>
    <tr><td class="param">require</td><td>Number of bytes needed.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The number of bytes of data available to read.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a>, <a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="ref">ejsCopyToByteArray</a>, <a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="ref">ejsCreateByteArray</a>, <a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="ref">ejsGetByteArrayAvailableData</a>, <a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="ref">ejsGetByteArrayRoom</a>, <a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="ref">ejsGrowByteArray</a>, <a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="ref">ejsResetByteArray</a>, <a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="ref">ejsSetByteArrayPositions</a>, <a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="ref">ejsWriteToByteArray</a></dd></dl>
  </div>
</div>
<a name="group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8"></a>
<div class="api">
  <div class="prototype">
    void
    ejsResetByteArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba)
  </div>
  <div class="apiDetail">
<p>Reset the byte.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will reset the byte array read/write positions if the array is empty.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ba</td><td>Byte array to modify.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a>, <a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="ref">ejsCopyToByteArray</a>, <a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="ref">ejsCreateByteArray</a>, <a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="ref">ejsGetByteArrayAvailableData</a>, <a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="ref">ejsGetByteArrayRoom</a>, <a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="ref">ejsGrowByteArray</a>, <a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="ref">ejsMakeRoomInByteArray</a>, <a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="ref">ejsSetByteArrayPositions</a>, <a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="ref">ejsWriteToByteArray</a></dd></dl>
  </div>
</div>
<a name="group___ejs_byte_array_1gae53317802b2494990f39a29403e74343"></a>
<div class="api">
  <div class="prototype">
    void
    ejsSetByteArrayPositions
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> readPosition, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> writePosition)
  </div>
  <div class="apiDetail">
<p>Set the I/O byte array positions.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the read and/or write positions into the byte array. ByteArrays implement the Stream interface and support sequential and random access reading and writing of data in the array. The byte array maintains read and write positions that are automatically updated as data is read or written from or to the array.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ba</td><td>Byte array object.</td>
    <tr><td class="param">readPosition</td><td>New read position to set.</td>
    <tr><td class="param">writePosition</td><td>New write position to set.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a>, <a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="ref">ejsCopyToByteArray</a>, <a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="ref">ejsCreateByteArray</a>, <a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="ref">ejsGetByteArrayAvailableData</a>, <a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="ref">ejsGetByteArrayRoom</a>, <a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="ref">ejsGrowByteArray</a>, <a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="ref">ejsMakeRoomInByteArray</a>, <a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="ref">ejsResetByteArray</a>, <a href="#group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5" class="ref">ejsWriteToByteArray</a></dd></dl>
  </div>
</div>
<a name="group___ejs_byte_array_1ga3b2aac807171ed5c62fd35c43e5289d5"></a>
<div class="api">
  <div class="prototype">
    struct EjsNumber *
    EjsNumber* ejsWriteToByteArray
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a> *ba, int argc, <a href="#group___ejs_obj" class="ref">EjsObj</a> **argv)
  </div>
  <div class="apiDetail">
<p>Write data to the byte array This implements the ByteArray.write function.</p>
It is most useful for other types to implement a write to byte array capability
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">ba</td><td>Byte array to examine.</td>
    <tr><td class="param">argc</td><td>Count of args in argv.</td>
    <tr><td class="param">argv</td><td>Arguments to write.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The number of bytes of data written (EjsNumber).</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_byte_array" class="ref">EjsByteArray</a>, <a href="#group___ejs_byte_array_1ga0a3fff1a0c61911846644a5d3b79943b" class="ref">ejsCopyToByteArray</a>, <a href="#group___ejs_byte_array_1ga4587936a91ae2826232be299da064cdf" class="ref">ejsCreateByteArray</a>, <a href="#group___ejs_byte_array_1ga826d8a10b067ba49318dc329cb670439" class="ref">ejsGetByteArrayAvailableData</a>, <a href="#group___ejs_byte_array_1gab768a2dedd251a82e37ea3e2b732f425" class="ref">ejsGetByteArrayRoom</a>, <a href="#group___ejs_byte_array_1ga7c90ce987f93e29f571a243ebcf5f138" class="ref">ejsGrowByteArray</a>, <a href="#group___ejs_byte_array_1ga9e27e074496d87d332a6bb4fab13bce9" class="ref">ejsMakeRoomInByteArray</a>, <a href="#group___ejs_byte_array_1gab64a1e0c64be0f33f83a58e66da4f4e8" class="ref">ejsResetByteArray</a>, <a href="#group___ejs_byte_array_1gae53317802b2494990f39a29403e74343" class="ref">ejsSetByteArrayPositions</a></dd></dl>
  </div>
</div>
<h1>EjsCache</h1>
<a name="group___ejs_cache"></a>
<div class="api">
  <div class="prototype">EjsCache</div>
  <div class="apiDetail">
<p>EjsCache.</p>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_cache_1gaa69aed6d67365a635b0ba749c9296d25" class="ref">ejsCacheExpire</a>, <a href="#group___ejs_cache_1ga17fd2083e394298c21002acc1a9ba10b" class="ref">ejsCacheRead</a>, <a href="#group___ejs_cache_1ga3feb86bba6bd8209e75ca2720afda791" class="ref">ejsCacheReadObj</a>, <a href="#group___ejs_cache_1gab8c6645f302eb7f4156c7bf719e43ec4" class="ref">ejsCacheRemove</a>, <a href="#group___ejs_cache_1gafbe3a6a9d48c07397947ebf4e36e2284" class="ref">ejsCacheWrite</a>, <a href="#group___ejs_cache_1gaa378ab9b39d5251c1d003a4931ebb5f2" class="ref">ejsCacheWriteObj</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_cache_1gaa69aed6d67365a635b0ba749c9296d25"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCacheExpire
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, struct EjsDate *when)
  </div>
  <div class="apiDetail">
<p>Expire a cache item.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">cache</td><td>Cache object.</td>
    <tr><td class="param">key</td><td>Cache item key.</td>
    <tr><td class="param">when</td><td>When to expire the cache item.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Returns Null.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_cache_1ga17fd2083e394298c21002acc1a9ba10b" class="ref">ejsCacheRead</a>, <a href="#group___ejs_cache_1ga3feb86bba6bd8209e75ca2720afda791" class="ref">ejsCacheReadObj</a>, <a href="#group___ejs_cache_1gab8c6645f302eb7f4156c7bf719e43ec4" class="ref">ejsCacheRemove</a>, <a href="#group___ejs_cache_1gafbe3a6a9d48c07397947ebf4e36e2284" class="ref">ejsCacheWrite</a>, <a href="#group___ejs_cache_1gaa378ab9b39d5251c1d003a4931ebb5f2" class="ref">ejsCacheWriteObj</a></dd></dl>
  </div>
</div>
<a name="group___ejs_cache_1ga17fd2083e394298c21002acc1a9ba10b"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCacheRead
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)
  </div>
  <div class="apiDetail">
<p>Read an item from the cache.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">cache</td><td>Cache object.</td>
    <tr><td class="param">key</td><td>Cache item key.</td>
    <tr><td class="param">options</td><td>Cache read options.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String cache item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_cache_1gaa69aed6d67365a635b0ba749c9296d25" class="ref">ejsCacheExpire</a>, <a href="#group___ejs_cache_1ga3feb86bba6bd8209e75ca2720afda791" class="ref">ejsCacheReadObj</a>, <a href="#group___ejs_cache_1gab8c6645f302eb7f4156c7bf719e43ec4" class="ref">ejsCacheRemove</a>, <a href="#group___ejs_cache_1gafbe3a6a9d48c07397947ebf4e36e2284" class="ref">ejsCacheWrite</a>, <a href="#group___ejs_cache_1gaa378ab9b39d5251c1d003a4931ebb5f2" class="ref">ejsCacheWriteObj</a></dd></dl>
  </div>
</div>
<a name="group___ejs_cache_1ga3feb86bba6bd8209e75ca2720afda791"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCacheReadObj
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)
  </div>
  <div class="apiDetail">
<p>Read an object from the cache.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call reads a cache item and then deserializes using JSON encoding into an object.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">cache</td><td>Cache object.</td>
    <tr><td class="param">key</td><td>Cache item key.</td>
    <tr><td class="param">options</td><td>Cache read options.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Cache item object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_cache_1gaa69aed6d67365a635b0ba749c9296d25" class="ref">ejsCacheExpire</a>, <a href="#group___ejs_cache_1ga17fd2083e394298c21002acc1a9ba10b" class="ref">ejsCacheRead</a>, <a href="#group___ejs_cache_1gab8c6645f302eb7f4156c7bf719e43ec4" class="ref">ejsCacheRemove</a>, <a href="#group___ejs_cache_1gafbe3a6a9d48c07397947ebf4e36e2284" class="ref">ejsCacheWrite</a>, <a href="#group___ejs_cache_1gaa378ab9b39d5251c1d003a4931ebb5f2" class="ref">ejsCacheWriteObj</a></dd></dl>
  </div>
</div>
<a name="group___ejs_cache_1gab8c6645f302eb7f4156c7bf719e43ec4"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_boolean" class="ref">EjsBoolean</a> *
    ejsCacheRemove
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key)
  </div>
  <div class="apiDetail">
<p>Read an item from the cache.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">cache</td><td>Cache object.</td>
    <tr><td class="param">key</td><td>Cache item key.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String cache item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_cache_1gaa69aed6d67365a635b0ba749c9296d25" class="ref">ejsCacheExpire</a>, <a href="#group___ejs_cache_1ga17fd2083e394298c21002acc1a9ba10b" class="ref">ejsCacheRead</a>, <a href="#group___ejs_cache_1ga3feb86bba6bd8209e75ca2720afda791" class="ref">ejsCacheReadObj</a>, <a href="#group___ejs_cache_1gafbe3a6a9d48c07397947ebf4e36e2284" class="ref">ejsCacheWrite</a>, <a href="#group___ejs_cache_1gaa378ab9b39d5251c1d003a4931ebb5f2" class="ref">ejsCacheWriteObj</a></dd></dl>
  </div>
</div>
<a name="group___ejs_cache_1ga17a4f1f2a5e1d4c7a503485455a89f3b"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCacheSetLimits
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, <a href="#group___ejs_obj" class="ref">EjsObj</a> *limits)
  </div>
  <div class="apiDetail">
<p>Set the cache limits.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">cache</td><td>Cache object.</td>
    <tr><td class="param">limits</td><td>Limits is an object hash. Depending on the cache backend in-use, the limits object may have some of the following properties. Consult the documentation for the actual cache backend for which properties are supported by the backend. <ul><li>keys Maximum number of keys in the cache. Set to zero for no limit. </li><li>lifespan Default time in seconds to preserve key data. Set to zero for no timeout. </li><li>memory Total memory to allocate for cache keys and data. Set to zero for no limit. </li><li>retries Maximum number of times to retry I/O operations with cache backends. </li><li>timeout Maximum time to transact I/O operations with cache backends. Set to zero for no timeout. </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String cache item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_cache_1gaa69aed6d67365a635b0ba749c9296d25" class="ref">ejsCacheExpire</a>, <a href="#group___ejs_cache_1ga17fd2083e394298c21002acc1a9ba10b" class="ref">ejsCacheRead</a>, <a href="#group___ejs_cache_1ga3feb86bba6bd8209e75ca2720afda791" class="ref">ejsCacheReadObj</a>, <a href="#group___ejs_cache_1gab8c6645f302eb7f4156c7bf719e43ec4" class="ref">ejsCacheRemove</a>, <a href="#group___ejs_cache_1gafbe3a6a9d48c07397947ebf4e36e2284" class="ref">ejsCacheWrite</a>, <a href="#group___ejs_cache_1gaa378ab9b39d5251c1d003a4931ebb5f2" class="ref">ejsCacheWriteObj</a></dd></dl>
  </div>
</div>
<a name="group___ejs_cache_1gafbe3a6a9d48c07397947ebf4e36e2284"></a>
<div class="api">
  <div class="prototype">
    struct EjsNumber *
    EjsNumber* ejsCacheWrite
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, struct EjsString *value, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)
  </div>
  <div class="apiDetail">
<p>Write an item to the cache.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">cache</td><td>Cache object.</td>
    <tr><td class="param">key</td><td>Cache item key.</td>
    <tr><td class="param">value</td><td>Value to write.</td>
    <tr><td class="param">options</td><td>Cache write options <ul><li>lifespan Preservation time for the key in seconds. </li><li>expire When to expire the key. Takes precedence over lifetime. </li><li>mode Mode of writing: &quot;set&quot; is the default and means set a new value and create if required. &quot;add&quot; means set the value only if the key does not already exist. &quot;append&quot; means append to any existing value and create if required. &quot;prepend&quot; means prepend to any existing value and create if required. </li><li>version Unique version identifier to be used for a conditional write. The write will only be performed if the version id for the key has not changed. This implements an atomic compare and swap.  </li><li>throw Throw an exception rather than returning null if the version id has been updated for the key. </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String cache item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_cache_1gaa69aed6d67365a635b0ba749c9296d25" class="ref">ejsCacheExpire</a>, <a href="#group___ejs_cache_1ga17fd2083e394298c21002acc1a9ba10b" class="ref">ejsCacheRead</a>, <a href="#group___ejs_cache_1ga3feb86bba6bd8209e75ca2720afda791" class="ref">ejsCacheReadObj</a>, <a href="#group___ejs_cache_1gab8c6645f302eb7f4156c7bf719e43ec4" class="ref">ejsCacheRemove</a>, <a href="#group___ejs_cache_1gaa378ab9b39d5251c1d003a4931ebb5f2" class="ref">ejsCacheWriteObj</a></dd></dl>
  </div>
</div>
<a name="group___ejs_cache_1gaa378ab9b39d5251c1d003a4931ebb5f2"></a>
<div class="api">
  <div class="prototype">
    struct EjsNumber *
    EjsNumber* ejsCacheWriteObj
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *cache, struct EjsString *key, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *value, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)
  </div>
  <div class="apiDetail">
<p>Write an object to the cache.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">cache</td><td>Cache object.</td>
    <tr><td class="param">key</td><td>Cache item key.</td>
    <tr><td class="param">value</td><td>Value to write.</td>
    <tr><td class="param">options</td><td>Cache write options <ul><li>lifespan Preservation time for the key in seconds. </li><li>expire When to expire the key. Takes precedence over lifetime. </li><li>mode Mode of writing: &quot;set&quot; is the default and means set a new value and create if required. &quot;add&quot; means set the value only if the key does not already exist. &quot;append&quot; means append to any existing value and create if required. &quot;prepend&quot; means prepend to any existing value and create if required. </li><li>version Unique version identifier to be used for a conditional write. The write will only be performed if the version id for the key has not changed. This implements an atomic compare and swap.  </li><li>throw Throw an exception rather than returning null if the version id has been updated for the key. </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String cache item.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_cache_1gaa69aed6d67365a635b0ba749c9296d25" class="ref">ejsCacheExpire</a>, <a href="#group___ejs_cache_1ga17fd2083e394298c21002acc1a9ba10b" class="ref">ejsCacheRead</a>, <a href="#group___ejs_cache_1ga3feb86bba6bd8209e75ca2720afda791" class="ref">ejsCacheReadObj</a>, <a href="#group___ejs_cache_1gab8c6645f302eb7f4156c7bf719e43ec4" class="ref">ejsCacheRemove</a>, <a href="#group___ejs_cache_1gafbe3a6a9d48c07397947ebf4e36e2284" class="ref">ejsCacheWrite</a></dd></dl>
  </div>
</div>
<h1>EjsCmd</h1>
<a name="group___ejs_cmd"></a>
<div class="api">
  <div class="prototype">EjsCmd</div>
  <div class="apiDetail">
<p>Cmd class.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>argc</td><td>
Length of argv.
</td>
    <tr><td class="param">cchar **</td><td><td>argv</td><td>
Actual argv when invoking the command.
</td>
    <tr><td class="param">int</td><td><td>async</td><td>
Async mode.
</td>
    <tr><td class="param">EjsAny *</td><td><td>command</td><td>
Command to run.
</td>
    <tr><td class="param">Ejs *</td><td><td>ejs</td><td>
Interpreter back link.
</td>
    <tr><td class="param">EjsObj *</td><td><td>emitter</td><td>
Event emitter for listeners.
</td>
    <tr><td class="param">EjsAny *</td><td><td>env</td><td>
Optional environment.
</td>
    <tr><td class="param">struct EjsByteArray *</td><td><td>error</td><td>
Error stream.
</td>
    <tr><td class="param">MprCmd *</td><td><td>mc</td><td>
MprCmd object.
</td>
    <tr><td class="param">EjsAny *</td><td><td>options</td><td>
Command options object.
</td>
    <tr><td class="param">EjsPot</td><td><td>pot</td><td>
Property storage.
</td>
    <tr><td class="param">MprBuf *</td><td><td>stderrBuf</td><td>
Stderr from the command.
</td>
    <tr><td class="param">MprBuf *</td><td><td>stdoutBuf</td><td>
Stdout from the command.
</td>
    <tr><td class="param">int</td><td><td>throw</td><td>
Set to true if the command should throw exceptions for failures.
</td>
    <tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>timeout</td><td>
Command timeout in milliseconds.
</td>
    </table></dd></dl>
  </div>
</div>
<h1>EjsDate</h1>
<a name="group___ejs_date"></a>
<div class="api">
  <div class="prototype">EjsDate</div>
  <div class="apiDetail">
<p>Date class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Date class is a general purpose class for working with dates and times. is a a primitive native type and extends EjsObj. It is still logically an Object, but implements Object properties and methods itself.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_date_1gad85120109dc8c4d6a399d5e81be3cc78" class="ref">ejsCreateDate</a>, <a href="#group___ejs_date_1ga3d02ee8066787be16a429f45912357f7" class="ref">ejsGetDate</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Object base.
</td>
    <tr><td class="param">MprTime</td><td><td>value</td><td>
Time in milliseconds since &quot;1970/01/01 GMT&quot;.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_date_1gad85120109dc8c4d6a399d5e81be3cc78"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_date" class="ref">EjsDate</a> *
    ejsCreateDate
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="mpr.html#group___mpr_time" class="ref">MprTime</a> value)
  </div>
  <div class="apiDetail">
<p>Create a new date instance.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>Date/time value to set the new date instance to.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An initialized date instance.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_date" class="ref">EjsDate</a>, <a href="#group___ejs_date_1ga3d02ee8066787be16a429f45912357f7" class="ref">ejsGetDate</a></dd></dl>
  </div>
</div>
<a name="group___ejs_date_1ga3d02ee8066787be16a429f45912357f7"></a>
<div class="api">
  <div class="prototype">
    <a href="mpr.html#group___mpr_time" class="ref">MprTime</a>
    ejsGetDate
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_date" class="ref">EjsDate</a> *date)
  </div>
  <div class="apiDetail">
<p>Get the numeric value stored in a EjsDate object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">date</td><td>Date object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An MprTime value.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_date" class="ref">EjsDate</a>, <a href="#group___ejs_date_1gad85120109dc8c4d6a399d5e81be3cc78" class="ref">ejsCreateDate</a></dd></dl>
  </div>
</div>
<h1>EjsError</h1>
<a name="group___ejs_error"></a>
<div class="api">
  <div class="prototype">EjsError</div>
  <div class="apiDetail">
<p>Error classes.</p>
    <dl><dt><b>Description</b>:</dt><dd>Base class for error exception objects. Exception objects are created by programs and by the system as part of changing the normal flow of execution when some error condition occurs. When an exception is created and acted upon (&quot;thrown&quot;), the system transfers the flow of control to a pre-defined instruction stream (the handler or &quot;catch&quot; code). The handler may return processing to the point at which the exception was thrown or not. It may re-throw the exception or pass control up the call stack.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_array" class="ref">EjsArray</a> *
    ejsCaptureStack
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int skip)
  </div>
  <div class="apiDetail">
<p>Capture the execution stack.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">skip</td><td>How many levels of stack to skip before capturing (counts from the top down).</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Array of stack records.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga975b06311da83fea1088a8be55d9c5fb"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsCreateError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, <a href="#group___ejs_obj" class="ref">EjsObj</a> *message)
  </div>
  <div class="apiDetail">
<p>Create an error object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Error base type.</td>
    <tr><td class="param">message</td><td>Error message to use when constructing the error object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Error object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga26516321557d20655ded73648c787e46"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    ejsGetErrorMsg
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int withStack)
  </div>
  <div class="apiDetail">
<p>Get the interpreter error message.</p>
    <dl><dt><b>Description</b>:</dt><dd>Return a string containing the current interpreter error message.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">withStack</td><td>Set to 1 to include a stack backtrace in the error message.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string containing the error message. The caller must not free.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_obj" class="ref">EjsObj</a> *
    ejsGetException
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Get the Ejs exception object for this interpreter.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The exception object if one exists, otherwise NULL.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsHasException
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Determine if an exception has been thrown.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if an exception has been thrown.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Test if the given object is an error instance.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the object is an error.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowArgError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an argument exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga76ba0109091b0aa5356ab51838709267"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowArithmeticError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an math exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga1602a9545dce6336d8388a36281a357d"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowAssertError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an assertion exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an general error exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowInstructionError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an instruction code exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowInternalError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an internal error exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowIOError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an IO exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowMemoryError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Throw an Memory depletion exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowOutOfBoundsError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an out of bounds exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowReferenceError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an reference exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowResourceError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an resource exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowStateError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an state exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga1e0a863535a31f998de69e7814136e52"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_obj" class="ref">EjsObj</a> *
    ejsThrowStopIteration
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Throw an stop iteration exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsThrowString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw a string message.</p>
This will not capture the stack as part of the exception message
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowSyntaxError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an syntax error exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545" class="ref">ejsThrowTypeError</a></dd></dl>
  </div>
</div>
<a name="group___ejs_error_1ga9974d313b166badf9cf7e3f2e9d09545"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_error" class="ref">EjsError</a> *
    ejsThrowTypeError
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Throw an type error exception.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Printf style format string to use for the error message.</td>
    <tr><td class="param">...</td><td>Message arguments.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_error_1ga7e5c81aa6006db8540df5835022cc101" class="ref">ejsCaptureStack</a>, <a href="#group___ejs_error_1ga26516321557d20655ded73648c787e46" class="ref">ejsGetErrorMsg</a>, <a href="#group___ejs_error_1ga58fdca3d3629fd2020c15a20edb9d26e" class="ref">ejsGetException</a>, <a href="#group___ejs_error_1gaba0d6e967d7b71217b76f8166baf7183" class="ref">ejsHasException</a>, <a href="#group___ejs_error_1ga2995783427c88b112c971bbefd54ef2f" class="ref">ejsIsError</a>, <a href="#group___ejs_error_1ga1188c165c3f982e7eb662b537f6e9f80" class="ref">ejsThrowArgError</a>, <a href="#group___ejs_error_1ga76ba0109091b0aa5356ab51838709267" class="ref">ejsThrowArithmeticError</a>, <a href="#group___ejs_error_1ga1602a9545dce6336d8388a36281a357d" class="ref">ejsThrowAssertError</a>, <a href="#group___ejs_error_1ga919720ec6d9cbc16d20c469fb1b4b5f2" class="ref">ejsThrowError</a>, <a href="#group___ejs_error_1gaf2ef67425249cd58caecbaa77e0ff162" class="ref">ejsThrowIOError</a>, <a href="#group___ejs_error_1ga22627629d4ea7298d94cbf533ae268d5" class="ref">ejsThrowInstructionError</a>, <a href="#group___ejs_error_1gab03fe56b00006f9b81c812dd60c1f779" class="ref">ejsThrowInternalError</a>, <a href="#group___ejs_error_1ga6d9cd1cc0f553159863b78fdcaabfc44" class="ref">ejsThrowMemoryError</a>, <a href="#group___ejs_error_1ga59e5b435003d8eb584d949b957524eb4" class="ref">ejsThrowOutOfBoundsError</a>, <a href="#group___ejs_error_1ga43104f1c946c71b3db02dad3762b0902" class="ref">ejsThrowReferenceError</a>, <a href="#group___ejs_error_1ga3f87467556879ee26e33d14e984c6de1" class="ref">ejsThrowResourceError</a>, <a href="#group___ejs_error_1gaeb70ad53793bcb1bd9da99e6035493e7" class="ref">ejsThrowStateError</a>, <a href="#group___ejs_error_1ga1e0a863535a31f998de69e7814136e52" class="ref">ejsThrowStopIteration</a>, <a href="#group___ejs_error_1ga350728f64e26cb82608eb6b13972ebad" class="ref">ejsThrowString</a>, <a href="#group___ejs_error_1ga4d7c6ece206d663796d8eea5e6775c3e" class="ref">ejsThrowSyntaxError</a></dd></dl>
  </div>
</div>
<h1>EjsFile</h1>
<a name="group___ejs_file"></a>
<div class="api">
  <div class="prototype">EjsFile</div>
  <div class="apiDetail">
<p>File class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The File class provides a foundation of I/O services to interact with physical files and directories. Each File object represents a single file or directory and provides methods for creating, opening, reading, writing and deleting files, and for accessing and modifying information about the file.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file_1ga5f2c865e36e54f93f3caa0159982cff9" class="ref">ejsCreateFile</a>, <a href="#group___ejs_file_1ga2b1b33f9ab920e964d4e34a77fe00acf" class="ref">ejsCreateFileFromFd</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>attached</td><td>
Attached to existing descriptor.
</td>
    <tr><td class="param">Ejs *</td><td><td>ejs</td><td>
Interp reference.
</td>
    <tr><td class="param">MprFile *</td><td><td>file</td><td>
Open file handle.
</td>
    <tr><td class="param">MprPath</td><td><td>info</td><td>
Cached file info.
</td>
    <tr><td class="param">int</td><td><td>mode</td><td>
Current open mode.
</td>
    <tr><td class="param">char *</td><td><td>modeString</td><td>
User supplied mode string.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">char *</td><td><td>path</td><td>
Filename path.
</td>
    <tr><td class="param">int</td><td><td>perms</td><td>
Posix permissions mask.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_file_1ga5f2c865e36e54f93f3caa0159982cff9"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_file" class="ref">EjsFile</a> *
    ejsCreateFile
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *filename)
  </div>
  <div class="apiDetail">
<p>Create a File object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a file object associated with the given filename. The filename is not opened, just stored.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">filename</td><td>Filename to associate with the file object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new file object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_file_1ga2b1b33f9ab920e964d4e34a77fe00acf" class="ref">ejsCreateFileFromFd</a></dd></dl>
  </div>
</div>
<a name="group___ejs_file_1ga2b1b33f9ab920e964d4e34a77fe00acf"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_file" class="ref">EjsFile</a> *
    ejsCreateFileFromFd
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int fd, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, int mode)
  </div>
  <div class="apiDetail">
<p>Create a file object from an O/S file descriptor.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fd</td><td>O/S file descriptor handle.</td>
    <tr><td class="param">name</td><td>Filename to associate with the file object.</td>
    <tr><td class="param">mode</td><td>O/S file access mode (see man 2 open).</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new file object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_file_1ga5f2c865e36e54f93f3caa0159982cff9" class="ref">ejsCreateFile</a></dd></dl>
  </div>
</div>
<h1>EjsFileSystem</h1>
<a name="group___ejs_file_system"></a>
<div class="api">
  <div class="prototype">EjsFileSystem</div>
  <div class="apiDetail">
<p>FileSystem class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The FileSystem class provides file system services.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_file_1ga5f2c865e36e54f93f3caa0159982cff9" class="ref">ejsCreateFile</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">MprFileSystem *</td><td><td>fs</td><td>
MPR file system object.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">char *</td><td><td>path</td><td>
Filename path.
</td>
    </table></dd></dl>
  </div>
</div>
<h1>EjsFrame</h1>
<a name="group___ejs_frame"></a>
<div class="api">
  <div class="prototype">EjsFrame</div>
  <div class="apiDetail">
<p>Frame record.</p>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_frame_1gadedcb4d617bcaae8cb975249a763b36c" class="ref">ejsIsFrame</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">uint</td><td><td>argc</td><td>
Actual parameter count.
</td>
    <tr><td class="param">uchar *</td><td><td>attentionPc</td><td>
Restoration PC value after attention.
</td>
    <tr><td class="param">struct EjsFrame *</td><td><td>caller</td><td>
Previous invoking frame.
</td>
    <tr><td class="param">EjsFunction</td><td><td>function</td><td>
Activation frame for function calls. 
Stores local variables.
</td>
    <tr><td class="param">uint</td><td><td>getter</td><td>
Frame is a getter.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_line">EjsLine</a> *</td><td><td>line</td><td>
Debug source line.
</td>
    <tr><td class="param">EjsFunction *</td><td><td>orig</td><td>
Original function frame is based on.
</td>
    <tr><td class="param">uchar *</td><td><td>pc</td><td>
Program counter.
</td>
    <tr><td class="param">int</td><td><td>slotNum</td><td>
Slot in owner.
</td>
    <tr><td class="param">EjsObj **</td><td><td>stackBase</td><td>
Start of stack in this function.
</td>
    <tr><td class="param">EjsObj **</td><td><td>stackReturn</td><td>
Top of stack to return to.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_frame_1gadedcb4d617bcaae8cb975249a763b36c"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsFrame
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Determine if a variable is a frame.</p>
Only used internally in the VM
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the variable is a frame.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<h1>EjsFunction</h1>
<a name="group___ejs_function"></a>
<div class="api">
  <div class="prototype">EjsFunction</div>
  <div class="apiDetail">
<p>Function class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Function type is used to represent closures, function expressions and class methods. It contains a reference to the code to execute, the execution scope and possibly a bound &quot;this&quot; reference.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsPot *</td><td><td>activation</td><td>
Function properties.
</td>
    <tr><td class="param">uint</td><td><td>allowMissingArgs</td><td>
Allow unsufficient args for native functions.
</td>
    <tr><td class="param">struct EjsType *</td><td><td>archetype</td><td>
Type to use to create instances.
</td>
    <tr><td class="param">struct EjsArray *</td><td><td>boundArgs</td><td>
Bound &quot;args&quot;.
</td>
    <tr><td class="param">EjsAny *</td><td><td>boundThis</td><td>
Bound &quot;this&quot; object value.
</td>
    <tr><td class="param">uint</td><td><td>castNulls</td><td>
Cast return values of null.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_code">EjsCode</a> *</td><td><td>code</td><td>
Byte code.
</td>
    <tr><td class="param">int</td><td><td>endFunction</td><td>
Offset in mod file for end of function.
</td>
    <tr><td class="param">uint</td><td><td>fullScope</td><td>
Closures must capture full scope.
</td>
    <tr><td class="param">uint</td><td><td>hasReturn</td><td>
Has a return stmt.
</td>
    <tr><td class="param">uint</td><td><td>inCatch</td><td>
Executing catch block.
</td>
    <tr><td class="param">uint</td><td><td>inException</td><td>
Executing catch/finally exception processing.
</td>
    <tr><td class="param">uint</td><td><td>isConstructor</td><td>
Is a constructor.
</td>
    <tr><td class="param">uint</td><td><td>isInitializer</td><td>
Is a type initializer.
</td>
    <tr><td class="param">uint</td><td><td>isNativeProc</td><td>
Is native procedure.
</td>
    <tr><td class="param">uint</td><td><td>moduleInitializer</td><td>
Is a module initializer.
</td>
    <tr><td class="param">EjsString *</td><td><td>name</td><td>
Parameter and local properties.
</td>
    <tr><td class="param">uint</td><td><td>numArgs</td><td>
Count of formal parameters.
</td>
    <tr><td class="param">uint</td><td><td>numDefault</td><td>
Count of formal parameters with default initializers.
</td>
    <tr><td class="param"><a class="ref" href="#group___ejs_function_1ga154ff59b6e236d13c28765946349c884">EjsProc</a></td><td><td>proc</td><td>
Native function pointer.
</td>
    <tr><td class="param">uint</td><td><td>rest</td><td>
Has a &quot;...&quot; rest of args parameter.
</td>
    <tr><td class="param">struct EjsType *</td><td><td>resultType</td><td>
Return type of method.
</td>
    <tr><td class="param">struct EjsFunction *</td><td><td>setter</td><td>
Function name. 
Setter function for this property.
</td>
    <tr><td class="param">uint</td><td><td>staticMethod</td><td>
Is a static method.
</td>
    <tr><td class="param">uint</td><td><td>strict</td><td>
Language strict mode (vs standard).
</td>
    <tr><td class="param">uint</td><td><td>throwNulls</td><td>
Return type cannot be null.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1gab324330507f71d03691a7ef1bf36e6a6"></a>
<div class="api">
  <div class="prototype">
    <a href="#struct_ejs_ex" class="ref">EjsEx</a> *
    ejsAddException
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, <a href="osdep.html#osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14" class="ref">uint</a> tryStart, <a href="osdep.html#osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14" class="ref">uint</a> tryEnd, struct EjsType *catchType, <a href="osdep.html#osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14" class="ref">uint</a> handlerStart, <a href="osdep.html#osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14" class="ref">uint</a> handlerEnd, int numBlocks, int numStack, int flags, int preferredIndex)
  </div>
  <div class="apiDetail">
<p>Add an exception record.</p>
    <dl><dt><b>Description</b>:</dt><dd>This creates an exception record to define a catch or finally block.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fun</td><td>Function to modify.</td>
    <tr><td class="param">tryStart</td><td>Pointer to the bytecode start of try block.</td>
    <tr><td class="param">tryEnd</td><td>Pointer to one past the end of the try block.</td>
    <tr><td class="param">catchType</td><td>Type of error to catch. Set to null for all.</td>
    <tr><td class="param">handlerStart</td><td>Pointer to the start of the catch / finally block.</td>
    <tr><td class="param">handlerEnd</td><td>Pointer ot one past the end of the catch / finally block.</td>
    <tr><td class="param">numBlocks</td><td>Count of blocks opened before the try block.</td>
    <tr><td class="param">numStack</td><td>Count of stack slots pushed before the try block.</td>
    <tr><td class="param">flags</td><td>Reserved.</td>
    <tr><td class="param">preferredIndex</td><td>Preferred index in the function exceptions list. Set to -1 for the next available slot.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The allocated exception object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_function" class="ref">EjsFunction</a> *
    ejsCloneFunction
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, int deep)
  </div>
  <div class="apiDetail">
<p>Clone a function.</p>
    <dl><dt><b>Description</b>:</dt><dd>Copy a function and create a new copy. This may do a shallow or deep copy. A shallow copy will not copy the property instances, rather it will only duplicate the property reference. A deep copy will recursively clone all the properties of the variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fun</td><td>Function to clone.</td>
    <tr><td class="param">deep</td><td>Set to true to clone each property of the function. Otherwise object references will have their references copied and not the reference targets.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The allocated activation object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_pot" class="ref">EjsPot</a> *
    ejsCreateActivation
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, int numSlots)
  </div>
  <div class="apiDetail">
<p>Create an activation record for a function.</p>
    <dl><dt><b>Description</b>:</dt><dd>This creates an activation object that stores the local variables for a function This is a onetime operation and is not done for each function invocation.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fun</td><td>Function to examine.</td>
    <tr><td class="param">numSlots</td><td>Number of local variables to reserve room for.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The allocated activation object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_function" class="ref">EjsFunction</a> *
    ejsCreateBareFunction
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name, int attributes)
  </div>
  <div class="apiDetail">
<p>Create a bare function.</p>
    <dl><dt><b>Description</b>:</dt><dd>This creates a function without code, exceptions or module linkage.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">name</td><td>Function name.</td>
    <tr><td class="param">attributes</td><td>Function attributes.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The allocated function.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga4be7f507d1c5e777a9e8022f1cbba201"></a>
<div class="api">
  <div class="prototype">
    <a href="#struct_ejs_code" class="ref">EjsCode</a> *
    ejsCreateCode
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, struct EjsModule *module, <a href="osdep.html#osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2" class="ref">cuchar</a> *byteCode, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len, <a href="#struct_ejs_debug" class="ref">EjsDebug</a> *debug)
  </div>
  <div class="apiDetail">
<p>Create a code block.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fun</td><td>Function to examine.</td>
    <tr><td class="param">module</td><td>Module owning the function.</td>
    <tr><td class="param">byteCode</td><td>ByteCode buffer.</td>
    <tr><td class="param">len</td><td>Size of the byteCode buffer.</td>
    <tr><td class="param">debug</td><td>Debug record with symbolic debug information.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An allocated code block.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_function" class="ref">EjsFunction</a> *
    ejsCreateFunction
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name, <a href="osdep.html#osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2" class="ref">cuchar</a> *code, int codeLen, int numArgs, int numDefault, int numExceptions, struct EjsType *returnType, int attributes, struct EjsModule *module, <a href="#group___ejs_block" class="ref">EjsBlock</a> *scope, int strict)
  </div>
  <div class="apiDetail">
<p>Create a function object.</p>
    <dl><dt><b>Description</b>:</dt><dd>This creates a function object and optionally associates byte code with the function.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">name</td><td>Function name used in stack backtraces.</td>
    <tr><td class="param">code</td><td>Pointer to the byte code. The byte code is not copied so this must be a persistent pointer.</td>
    <tr><td class="param">codeLen</td><td>Length of the code.</td>
    <tr><td class="param">numArgs</td><td>Number of formal arguments to the function.</td>
    <tr><td class="param">numDefault</td><td>Number of default args to the function.</td>
    <tr><td class="param">numExceptions</td><td>Number of exception handlers.</td>
    <tr><td class="param">returnType</td><td>Return type of the function. Set to NULL for no defined type.</td>
    <tr><td class="param">attributes</td><td>Integer mask of access attributes.</td>
    <tr><td class="param">module</td><td>Reference to the module owning the function.</td>
    <tr><td class="param">scope</td><td>Reference to the chain of blocks that that comprises the lexical scope chain for this function.</td>
    <tr><td class="param">strict</td><td>Run code in strict mode (vs standard).</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An initialized function object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156"></a>
<div class="api">
  <div class="prototype">
    int
    ejsInitFunction
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, <a href="#group___ejs_string" class="ref">EjsString</a> *name, <a href="osdep.html#osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2" class="ref">cuchar</a> *code, int codeLen, int numArgs, int numDefault, int numExceptions, struct EjsType *returnType, int attributes, struct EjsModule *module, <a href="#group___ejs_block" class="ref">EjsBlock</a> *scope, int strict)
  </div>
  <div class="apiDetail">
<p>Initialize a function object.</p>
    <dl><dt><b>Description</b>:</dt><dd>This initializes a pre-existing function object and optionally associates byte code with the function. This is useful to create constructors which are stored inside type objects.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fun</td><td>Function object.</td>
    <tr><td class="param">name</td><td>Function name used in stack backtraces.</td>
    <tr><td class="param">code</td><td>Pointer to the byte code. The byte code is not copied so this must be a persistent pointer.</td>
    <tr><td class="param">codeLen</td><td>Length of the code.</td>
    <tr><td class="param">numArgs</td><td>Number of formal arguments to the function.</td>
    <tr><td class="param">numDefault</td><td>Number of default args to the function.</td>
    <tr><td class="param">numExceptions</td><td>Number of exception handlers.</td>
    <tr><td class="param">returnType</td><td>Return type of the function. Set to NULL for no defined type.</td>
    <tr><td class="param">attributes</td><td>Integer mask of access attributes.</td>
    <tr><td class="param">module</td><td>Reference to the module owning the function.</td>
    <tr><td class="param">scope</td><td>Reference to the chain of blocks that that comprises the lexical scope chain for this function.</td>
    <tr><td class="param">strict</td><td>Run code in strict mode (vs standard).</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An initialized function object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsFunction
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Determine if a variable is a function.</p>
This will return true if the variable is a function of any kind, including methods, native and script functions or initializers
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the variable is a function.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsInitializer
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Determine if the function is an initializer.</p>
Initializers are special functions created by the compiler to do static and instance initialization of classes during construction
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the variable is an initializer.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsNativeFunction
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Determine if the function is a native function.</p>
Functions can be either native - meaning the implementation is via a C function, or can be scripted
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the variable is a native function.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0"></a>
<div class="api">
  <div class="prototype">
    void
    ejsRemoveConstructor
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type)
  </div>
  <div class="apiDetail">
<p>Remove a constructor function from a type.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Type reference.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsRunFunction
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fn, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *thisObj, int argc, void *argv)
  </div>
  <div class="apiDetail">
<p>Run a function.</p>
    <dl><dt><b>Description</b>:</dt><dd>Run a function with the given actual parameters.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fn</td><td>Function object to run.</td>
    <tr><td class="param">thisObj</td><td>Object to use as the &quot;this&quot; object when running the function.</td>
    <tr><td class="param">argc</td><td>Count of actual parameters.</td>
    <tr><td class="param">argv</td><td>Vector of actual parameters.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The return value from the function. If an exception is thrown, NULL will be returned and ejs-&gt;exception will be set to the exception object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1gaef84de6822a6963fc4fafd12525436ba"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsRunFunctionByName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *container, <a href="#group___ejs_name" class="ref">EjsName</a> qname, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *thisObj, int argc, void *argv)
  </div>
  <div class="apiDetail">
<p>Run a function by name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Run a function identified by name in the given container with the given actual parameters.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">container</td><td>Object that holds the function at its &quot;name&quot;.</td>
    <tr><td class="param">qname</td><td>Qualified name for the function in container.</td>
    <tr><td class="param">thisObj</td><td>Object to use as &quot;this&quot; when invoking the function.</td>
    <tr><td class="param">argc</td><td>Count of actual parameters.</td>
    <tr><td class="param">argv</td><td>Vector of actual parameters.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The return value from the function. If an exception is thrown, NULL will be returned and ejs-&gt;exception will be set to the exception object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsRunFunctionBySlot
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, int argc, void *argv)
  </div>
  <div class="apiDetail">
<p>Run a function by slot number.</p>
    <dl><dt><b>Description</b>:</dt><dd>Run a function identified by slot number with the given actual parameters. This will run the function stored at slotNum in the obj variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object that holds the function at its &quot;slotNum&quot; slot. Also use this object as the &quot;this&quot; object when running the function.</td>
    <tr><td class="param">slotNum</td><td>Slot number in obj that contains the function to run.</td>
    <tr><td class="param">argc</td><td>Count of actual parameters.</td>
    <tr><td class="param">argv</td><td>Vector of actual parameters.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The return value from the function. If an exception is thrown, NULL will be returned and ejs-&gt;exception will be set to the exception object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_obj" class="ref">EjsObj</a> *
    ejsRunInitializer
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsModule *module)
  </div>
  <div class="apiDetail">
<p>Run the initializer for a module.</p>
    <dl><dt><b>Description</b>:</dt><dd>A module&apos;s initializer runs global code defined in the module.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">module</td><td>Module object reference.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The last expression result of global code executed.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a></dd></dl>
  </div>
</div>
<a name="group___ejs_function_1ga05f702078d910b8ba7d8b4f65f41d18a"></a>
<div class="api">
  <div class="prototype">
    int
    ejsSetFunctionCode
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_function" class="ref">EjsFunction</a> *fun, struct EjsModule *module, <a href="osdep.html#osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2" class="ref">cuchar</a> *byteCode, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len, <a href="#struct_ejs_debug" class="ref">EjsDebug</a> *debug)
  </div>
  <div class="apiDetail">
<p>Set the byte code for a function.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fun</td><td>Function to examine.</td>
    <tr><td class="param">module</td><td>Module owning the function.</td>
    <tr><td class="param">byteCode</td><td>ByteCode buffer.</td>
    <tr><td class="param">len</td><td>Size of the byteCode buffer.</td>
    <tr><td class="param">debug</td><td>Debug record with symbolic debug information.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<h1>EjsHttp</h1>
<a name="group___ejs_http"></a>
<div class="api">
  <div class="prototype">EjsHttp</div>
  <div class="apiDetail">
<p>Http Class.</p>
    <dl><dt><b>Description</b>:</dt><dd><verbatim>Http objects represents a Hypertext Transfer Protocol version 1.1 client connection and are used 
HTTP requests and capture responses. This class supports the HTTP/1.1 standard including methods for GET, POST, 
PUT, DELETE, OPTIONS, and TRACE. It also supports Keep-Alive and SSL connections. 
</verbatim></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_http_1ga35375f154c987c2f3838c2e58a76ca3c" class="ref">ejsCreateHttp</a>, <a href="#group___ejs_http_1ga60a89e801d85e336886d45983d9f1f61" class="ref">ejsGetHttpLimits</a>, <a href="#group___ejs_path_1ga7d27ac819b3827b66dd3fee21707700b" class="ref">ejsLoadHttpService</a>, <a href="#group___ejs_http_1gaf24460df769dbdfc75e5cb162acf64c0" class="ref">ejsSetHttpLimits</a>, <a href="#group___ejs_path_1gaad418e9cce3ebf26addcddf7c6355a3a" class="ref">ejsSetupHttpTrace</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">char *</td><td><td>caFile</td><td>
SSL CA certificate file.
</td>
    <tr><td class="param">char *</td><td><td>certFile</td><td>
SSL certificate file.
</td>
    <tr><td class="param">int</td><td><td>closed</td><td>
Http is closed and &quot;close&quot; event has been issued.
</td>
    <tr><td class="param">HttpConn *</td><td><td>conn</td><td>
Http connection object.
</td>
    <tr><td class="param">EjsByteArray *</td><td><td>data</td><td>
Buffered write data.
</td>
    <tr><td class="param">Ejs *</td><td><td>ejs</td><td>
Interp reference.
</td>
    <tr><td class="param">EjsObj *</td><td><td>emitter</td><td>
Event emitter.
</td>
    <tr><td class="param">int</td><td><td>error</td><td>
Http errored and &quot;error&quot; event has been issued.
</td>
    <tr><td class="param">char *</td><td><td>keyFile</td><td>
SSL key file.
</td>
    <tr><td class="param">EjsObj *</td><td><td>limits</td><td>
Limits object.
</td>
    <tr><td class="param">char *</td><td><td>method</td><td>
HTTP method.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">ssize</td><td><td>readCount</td><td>
Count of body bytes read.
</td>
    <tr><td class="param">MprBuf *</td><td><td>requestContent</td><td>
Request body data supplied.
</td>
    <tr><td class="param">ssize</td><td><td>requestContentCount</td><td>
Count of bytes written from requestContent.
</td>
    <tr><td class="param">EjsString *</td><td><td>responseCache</td><td>
Cached response (only used if response() is used).
</td>
    <tr><td class="param">MprBuf *</td><td><td>responseContent</td><td>
Response data.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_ssl" external="mpr.dtags">MprSsl</a> *</td><td><td>ssl</td><td>
SSL configuration.
</td>
    <tr><td class="param">char *</td><td><td>uri</td><td>
Target uri.
</td>
    <tr><td class="param">ssize</td><td><td>writeCount</td><td>
Count of bytes written via write().
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_http_1ga35375f154c987c2f3838c2e58a76ca3c"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_http" class="ref">EjsHttp</a> *
    ejsCreateHttp
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Create a new Http object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new Http object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_http" class="ref">EjsHttp</a>, <a href="#group___ejs_http_1ga60a89e801d85e336886d45983d9f1f61" class="ref">ejsGetHttpLimits</a>, <a href="#group___ejs_path_1ga7d27ac819b3827b66dd3fee21707700b" class="ref">ejsLoadHttpService</a>, <a href="#group___ejs_http_1gaf24460df769dbdfc75e5cb162acf64c0" class="ref">ejsSetHttpLimits</a>, <a href="#group___ejs_path_1gaad418e9cce3ebf26addcddf7c6355a3a" class="ref">ejsSetupHttpTrace</a></dd></dl>
  </div>
</div>
<a name="group___ejs_http_1ga60a89e801d85e336886d45983d9f1f61"></a>
<div class="api">
  <div class="prototype">
    void
    ejsGetHttpLimits
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj, <a href="http.html#group___http_limits" class="ref">HttpLimits</a> *limits, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> server)
  </div>
  <div class="apiDetail">
<p>Get a Http limits.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to contain the limits properties.</td>
    <tr><td class="param">limits</td><td>The HttpLimits object.</td>
    <tr><td class="param">server</td><td>Set to true if defining server side limits.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_http" class="ref">EjsHttp</a>, <a href="#group___ejs_http_1ga35375f154c987c2f3838c2e58a76ca3c" class="ref">ejsCreateHttp</a>, <a href="#group___ejs_path_1ga7d27ac819b3827b66dd3fee21707700b" class="ref">ejsLoadHttpService</a>, <a href="#group___ejs_http_1gaf24460df769dbdfc75e5cb162acf64c0" class="ref">ejsSetHttpLimits</a>, <a href="#group___ejs_path_1gaad418e9cce3ebf26addcddf7c6355a3a" class="ref">ejsSetupHttpTrace</a></dd></dl>
  </div>
</div>
<a name="group___ejs_http_1gaf24460df769dbdfc75e5cb162acf64c0"></a>
<div class="api">
  <div class="prototype">
    void
    ejsSetHttpLimits
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="http.html#group___http_limits" class="ref">HttpLimits</a> *limits, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> server)
  </div>
  <div class="apiDetail">
<p>Set a Http limits.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">limits</td><td>The HttpLimits object receiving the limit settings.</td>
    <tr><td class="param">obj</td><td>Object containing the limits values.</td>
    <tr><td class="param">server</td><td>Set to true if defining server side limits.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_http" class="ref">EjsHttp</a>, <a href="#group___ejs_http_1ga35375f154c987c2f3838c2e58a76ca3c" class="ref">ejsCreateHttp</a>, <a href="#group___ejs_http_1ga60a89e801d85e336886d45983d9f1f61" class="ref">ejsGetHttpLimits</a>, <a href="#group___ejs_path_1ga7d27ac819b3827b66dd3fee21707700b" class="ref">ejsLoadHttpService</a>, <a href="#group___ejs_path_1gaad418e9cce3ebf26addcddf7c6355a3a" class="ref">ejsSetupHttpTrace</a></dd></dl>
  </div>
</div>
<h1>EjsHttpServer</h1>
<a name="group___ejs_http_server"></a>
<div class="api">
  <div class="prototype">EjsHttpServer</div>
  <div class="apiDetail">
<p>HttpServer Class.</p>
    <dl><dt><b>Description</b>:</dt><dd><verbatim>HttpServer objects represents a Hypertext Transfer Protocol version 1.1 client connection and are used 
HTTP requests and capture responses. This class supports the HTTP/1.1 standard including methods for GET, POST, 
PUT, DELETE, OPTIONS, and TRACE. It also supports Keep-Alive and SSL connections. 
</verbatim></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_http_server_1gab1aadc348f8ffa4c6ed2e90e78e681bb" class="ref">ejsCloneHttpServer</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>async</td><td>
Async mode.
</td>
    <tr><td class="param">char *</td><td><td>certFile</td><td>
SSL certificate file.
</td>
    <tr><td class="param">char *</td><td><td>ciphers</td><td>
SSL ciphers.
</td>
    <tr><td class="param">struct EjsHttpServer *</td><td><td>cloned</td><td>
Server that was cloned.
</td>
    <tr><td class="param">cchar *</td><td><td>connector</td><td>
Pipeline connector.
</td>
    <tr><td class="param">Ejs *</td><td><td>ejs</td><td>
Ejscript interpreter handle.
</td>
    <tr><td class="param">EjsObj *</td><td><td>emitter</td><td>
Event emitter.
</td>
    <tr><td class="param">HttpEndpoint *</td><td><td>endpoint</td><td>
Http endpoint object.
</td>
    <tr><td class="param">int</td><td><td>hosted</td><td>
Server being hosted inside a web server.
</td>
    <tr><td class="param">EjsArray *</td><td><td>incomingStages</td><td>
Incoming Http pipeline stages.
</td>
    <tr><td class="param">char *</td><td><td>ip</td><td>
Listening address.
</td>
    <tr><td class="param">char *</td><td><td>keyFile</td><td>
SSL key file.
</td>
    <tr><td class="param">EjsObj *</td><td><td>limits</td><td>
Limits object.
</td>
    <tr><td class="param">char *</td><td><td>name</td><td>
Server name.
</td>
    <tr><td class="param">EjsArray *</td><td><td>outgoingStages</td><td>
Outgoing Http pipeline stages.
</td>
    <tr><td class="param">int</td><td><td>port</td><td>
Listening port.
</td>
    <tr><td class="param">EjsPot</td><td><td>pot</td><td>
Extends Object.
</td>
    <tr><td class="param">char *</td><td><td>protocols</td><td>
SSL protocols.
</td>
    <tr><td class="param">struct <a class="ref" href="#struct_mpr_ssl" external="mpr.dtags">MprSsl</a> *</td><td><td>ssl</td><td>
SSL configuration.
</td>
    <tr><td class="param">HttpTrace *</td><td><td>trace</td><td>
Default tracing for requests.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_http_server_1gab1aadc348f8ffa4c6ed2e90e78e681bb"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_http_server" class="ref">EjsHttpServer</a> *
    ejsCloneHttpServer
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_http_server" class="ref">EjsHttpServer</a> *server, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)
  </div>
  <div class="apiDetail">
<p>Clone a http server.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs interpreter handle returned from $ejsCreate.</td>
    <tr><td class="param">server</td><td>HttpServer object.</td>
    <tr><td class="param">deep</td><td>Ignored.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new server object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_http_server" class="ref">EjsHttpServer</a></dd></dl>
  </div>
</div>
<h1>EjsIterator</h1>
<a name="group___ejs_iterator"></a>
<div class="api">
  <div class="prototype">EjsIterator</div>
  <div class="apiDetail">
<p>Iterator Class.</p>
    <dl><dt><b>Description</b>:</dt><dd>Iterator is a helper class to implement iterators in other native classes.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_iterator_1gae03a8656c8b4b158cb731db704866370" class="ref">ejsCreateIterator</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">bool</td><td><td>deep</td><td>
Iterator deep (recursively over all properties).
</td>
    <tr><td class="param">int</td><td><td>index</td><td>
Current index.
</td>
    <tr><td class="param">EjsObj *</td><td><td>indexVar</td><td>
Reference to current item.
</td>
    <tr><td class="param">int</td><td><td>length</td><td>
Collection length prior to iteration.
</td>
    <tr><td class="param">EjsArray *</td><td><td>namespaces</td><td>
Namespaces to consider in iteration.
</td>
    <tr><td class="param"><a class="ref" href="#group___ejs_function_1ga154ff59b6e236d13c28765946349c884">EjsProc</a></td><td><td>nativeNext</td><td>
Native next function.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">EjsObj *</td><td><td>target</td><td>
Object to be enumerated.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_iterator_1gae03a8656c8b4b158cb731db704866370"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_iterator" class="ref">EjsIterator</a> *
    ejsCreateIterator
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *target, int length, void *next, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep, <a href="#group___ejs_array" class="ref">EjsArray</a> *namespaces)
  </div>
  <div class="apiDetail">
<p>Create an iterator object.</p>
    <dl><dt><b>Description</b>:</dt><dd>The EjsIterator object is a helper class for native types to implement iteration and enumeration.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">target</td><td>Target variable to iterate or enumerate.</td>
    <tr><td class="param">length</td><td>Length of collection prior to iteration.</td>
    <tr><td class="param">next</td><td>Function to invoke to step to the next element.</td>
    <tr><td class="param">deep</td><td>Set to true to do a deep iteration/enumeration.</td>
    <tr><td class="param">namespaces</td><td>Reserved and not used. Supply NULL.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new EjsIterator object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_iterator" class="ref">EjsIterator</a></dd></dl>
  </div>
</div>
<h1>EjsModule</h1>
<a name="group___ejs_module"></a>
<div class="api">
  <div class="prototype">EjsModule</div>
  <div class="apiDetail">
<p>Module control structure.</p>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_module_1ga2074536c4ebc6f82689d783ec5cde5bf" class="ref">ejsCreateSearchPath</a>, <a href="#group___ejs_module_1gaa2d1411bda71012cd02f0dfb3be3bf85" class="ref">ejsLoadModule</a>, <a href="#group___ejs_module_1ga7f5fd9032996838e6093e47ff73cd7e0" class="ref">ejsLoadModules</a>, <a href="#group___ejs_module_1gaf5832f71a4c2ed1ff07bc81f2ddc000a" class="ref">ejsSearchForModule</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>checksum</td><td>
Checksum of slots and names.
</td>
    <tr><td class="param">struct EcCodeGen *</td><td><td>code</td><td>
Code generation buffer.
</td>
    <tr><td class="param">uint</td><td><td>compiling</td><td>
Module currently being compiled from source.
</td>
    <tr><td class="param">uint</td><td><td>configured</td><td>
Module types have been configured with native code.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_constants">EjsConstants</a> *</td><td><td>constants</td><td>
Constant pool.
</td>
    <tr><td class="param">MprList *</td><td><td>current</td><td>
Current stack of open objects.
</td>
    <tr><td class="param">EjsFunction *</td><td><td>currentMethod</td><td>
Current method being loaded.
</td>
    <tr><td class="param">MprList *</td><td><td>dependencies</td><td>
Module file dependencies. 
List of EjsModules.
</td>
    <tr><td class="param">EjsString *</td><td><td>doc</td><td>
Current doc string.
</td>
    <tr><td class="param">MprFile *</td><td><td>file</td><td>
File handle for loading and code generation.
</td>
    <tr><td class="param">int</td><td><td>firstGlobal</td><td>
First global property.
</td>
    <tr><td class="param">int</td><td><td>flags</td><td>
Loading flags.
</td>
    <tr><td class="param">MprList *</td><td><td>globalProperties</td><td>
List of global properties.
</td>
    <tr><td class="param">uint</td><td><td>hasError</td><td>
Module has a loader error.
</td>
    <tr><td class="param">uint</td><td><td>hasInitializer</td><td>
Has initializer function.
</td>
    <tr><td class="param">uint</td><td><td>hasNative</td><td>
Has native property definitions.
</td>
    <tr><td class="param">uint</td><td><td>initialized</td><td>
Initializer has run.
</td>
    <tr><td class="param">EjsFunction *</td><td><td>initializer</td><td>
Initializer method.
</td>
    <tr><td class="param">int</td><td><td>lastGlobal</td><td>
Last global property + 1.
</td>
    <tr><td class="param">uint</td><td><td>loaded</td><td>
Module has been loaded from an external file.
</td>
    <tr><td class="param">EjsLoadState *</td><td><td>loadState</td><td>
State while loading.
</td>
    <tr><td class="param">int</td><td><td>maxVersion</td><td>
Maximum version when used as a dependency.
</td>
    <tr><td class="param">int</td><td><td>minVersion</td><td>
Minimum version when used as a dependency.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Multithread locking.
</td>
    <tr><td class="param">EjsString *</td><td><td>name</td><td>
Name of this module - basename of the filename without .mod extension.
</td>
    <tr><td class="param">uint</td><td><td>nativeLoaded</td><td>
Backing shared library loaded.
</td>
    <tr><td class="param">char *</td><td><td>path</td><td>
Module file path name.
</td>
    <tr><td class="param">EjsBlock *</td><td><td>scope</td><td>
Lexical scope chain.
</td>
    <tr><td class="param">int</td><td><td>version</td><td>
Made with EJS_MAKE_VERSION.
</td>
    <tr><td class="param">uint</td><td><td>visited</td><td>
Module has been traversed.
</td>
    <tr><td class="param">EjsString *</td><td><td>vname</td><td>
Versioned name - name with optional version suffix.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_module_1ga2074536c4ebc6f82689d783ec5cde5bf"></a>
<div class="api">
  <div class="prototype">
    struct EjsArray *
    EjsArray* ejsCreateSearchPath
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *searchPath)
  </div>
  <div class="apiDetail">
<p>Create a search path array.</p>
This can be used in ejsCreate
    <dl><dt><b>Description</b>:</dt><dd>Create and array of search paths.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs interpreter.</td>
    <tr><td class="param">searchPath</td><td>Search path string. This is a colon (or semicolon on Windows) separated string of directories.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An array of search paths.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_module_1gaa2d1411bda71012cd02f0dfb3be3bf85" class="ref">ejsLoadModule</a>, <a href="#group___ejs_module_1ga7f5fd9032996838e6093e47ff73cd7e0" class="ref">ejsLoadModules</a>, <a href="#group___ejs_module_1gaf5832f71a4c2ed1ff07bc81f2ddc000a" class="ref">ejsSearchForModule</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_module_1gaa2d1411bda71012cd02f0dfb3be3bf85"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLoadModule
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name, int minVer, int maxVer, int flags)
  </div>
  <div class="apiDetail">
<p>Load a module.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will emit an error message of the format: <ul><li>program:line:errorCode:SEVERITY: message </li></ul></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpeter object returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">name</td><td>Module path name.</td>
    <tr><td class="param">maxVer</td><td>Maximum acceptable version to load. Use EJS_MAKE_VERSION to create a version number or set to -1 if any version is acceptable.</td>
    <tr><td class="param">minVer</td><td>Minimum acceptable version to load. Use EJS_MAKE_VERSION to create a version number or set to -1 if any version is acceptable.</td>
    <tr><td class="param">flags</td><td>Module loading flags. Select from: EJS_LOADER_STRICT, EJS_LOADER_NO_INIT, EJS_LOADER_ETERNAL, EJS_LOADER_BUILTIN, EJS_LOADER_DEP, EJS_LOADER_RELOAD.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A postitive slot number or a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_module_1ga2074536c4ebc6f82689d783ec5cde5bf" class="ref">ejsCreateSearchPath</a>, <a href="#group___ejs_module_1ga7f5fd9032996838e6093e47ff73cd7e0" class="ref">ejsLoadModules</a>, <a href="#group___ejs_module_1gaf5832f71a4c2ed1ff07bc81f2ddc000a" class="ref">ejsSearchForModule</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_module_1ga7f5fd9032996838e6093e47ff73cd7e0"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLoadModules
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *search, <a href="mpr.html#group___mpr_list" class="ref">MprList</a> *require)
  </div>
  <div class="apiDetail">
<p>Load modules into an interpreter.</p>
    <dl><dt><b>Description</b>:</dt><dd>Initialize an interpreter by loading modules. A list of modules to load can be provided via the &quot;require&quot; argument. If the &quot;require&quot; argument is set to null, then the default modules will be loaded. If &quot;require&quot; is set to a list of module names, these will be loaded. If set to an empty list, then no modules will be loaded and the interpreter will be marked as an &quot;empty&quot; interpreter.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter to modify.</td>
    <tr><td class="param">search</td><td>Module search path to use. Set to NULL for the default search path.</td>
    <tr><td class="param">require</td><td>Optional list of required modules to load. If NULL, the following modules will be loaded: ejs, ejs.io, ejs.events, ejs.xml, ejs.sys and ejs.unix.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise return a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_module_1ga2074536c4ebc6f82689d783ec5cde5bf" class="ref">ejsCreateSearchPath</a>, <a href="#group___ejs_module_1gaa2d1411bda71012cd02f0dfb3be3bf85" class="ref">ejsLoadModule</a>, <a href="#group___ejs_module_1gaf5832f71a4c2ed1ff07bc81f2ddc000a" class="ref">ejsSearchForModule</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_module_1gaf5832f71a4c2ed1ff07bc81f2ddc000a"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    ejsSearchForModule
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, int minVer, int maxVer)
  </div>
  <div class="apiDetail">
<p>Search for a module in the module search path.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpeter object returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">name</td><td>Module name.</td>
    <tr><td class="param">minVer</td><td>Minimum acceptable version to load. Use EJS_MAKE_VERSION to create a version number or set to -1 if any version is acceptable.</td>
    <tr><td class="param">maxVer</td><td>Maximum acceptable version to load. Use EJS_MAKE_VERSION to create a version number or set to -1 if any version is acceptable.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Path name to the module.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_module_1ga2074536c4ebc6f82689d783ec5cde5bf" class="ref">ejsCreateSearchPath</a>, <a href="#group___ejs_module_1gaa2d1411bda71012cd02f0dfb3be3bf85" class="ref">ejsLoadModule</a>, <a href="#group___ejs_module_1ga7f5fd9032996838e6093e47ff73cd7e0" class="ref">ejsLoadModules</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d"></a>
<div class="api">
  <div class="prototype">
    void
    ejsSetSearchPath
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsArray *search)
  </div>
  <div class="apiDetail">
<p>Set the module search path.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the ejs module search path. The search path is by default set to the value of the EJSPATH environment directory. Ejsript will search for modules by name. The search strategy is: Given a name &quot;a.b.c&quot;, scan for: <ul><li>File named a.b.c </li><li>File named a/b/c </li><li>File named a.b.c in EJSPATH </li><li>File named a/b/c in EJSPATH </li><li>File named c in EJSPATH</li></ul>
Ejs will search for files with no extension and also search for modules with a &quot;.mod&quot; extension. If there is a shared library of the same name with a shared library extension (.so, .dll, .dylib) and the module requires native code, then the shared library will also be loaded.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs interpreter.</td>
    <tr><td class="param">search</td><td>Array of search paths.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_module_1ga2074536c4ebc6f82689d783ec5cde5bf" class="ref">ejsCreateSearchPath</a>, <a href="#group___ejs_module_1gaa2d1411bda71012cd02f0dfb3be3bf85" class="ref">ejsLoadModule</a>, <a href="#group___ejs_module_1ga7f5fd9032996838e6093e47ff73cd7e0" class="ref">ejsLoadModules</a>, <a href="#group___ejs_module_1gaf5832f71a4c2ed1ff07bc81f2ddc000a" class="ref">ejsSearchForModule</a></dd></dl>
  </div>
</div>
<h1>EjsName</h1>
<a name="group___ejs_name"></a>
<div class="api">
  <div class="prototype">EjsName</div>
  <div class="apiDetail">
<p>Qualified name structure.</p>
    <dl><dt><b>Description</b>:</dt><dd>All names in Ejscript consist of a property name and a name space. Namespaces provide discrete spaces to manage and minimize name conflicts. These names will soon be converted to unicode.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_name_1ga8e96e376f3e611d2318ae69ee24778ff" class="ref">ejsMarkName</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">struct EjsString *</td><td><td>name</td><td>
Property name.
</td>
    <tr><td class="param">struct EjsString *</td><td><td>space</td><td>
Property namespace.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_name_1ga8e96e376f3e611d2318ae69ee24778ff"></a>
<div class="api">
  <div class="prototype">
    void
    ejsMarkName
(<a href="#group___ejs_name" class="ref">EjsName</a> *qname)
  </div>
  <div class="apiDetail">
<p>Mark a name for GC.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">qname</td><td>Qualified name reference.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_name" class="ref">EjsName</a></dd></dl>
  </div>
</div>
<a name="group___ejs_name_1ga6c8e3b296ee0bbbcc1516dcc4209003d"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_name" class="ref">EjsName</a>
    ejsName
(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *space, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Initialize a Qualified Name structure.</p>
    <dl><dt><b>Description</b>:</dt><dd>Initialize the statically allocated qualified name structure using a name and namespace.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">space</td><td>Namespace string.</td>
    <tr><td class="param">name</td><td>Name string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A reference to the qname structure.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_name" class="ref">EjsName</a>, <a href="#group___ejs_name_1ga8e96e376f3e611d2318ae69ee24778ff" class="ref">ejsMarkName</a></dd></dl>
  </div>
</div>
<a name="group___ejs_name_1ga44e87f616d5f0ad7103e15b057d35ee3"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_name" class="ref">EjsName</a>
    ejsWideName
(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *space, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Initialize a Qualified Name structure using a wide namespace and name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Initialize the statically allocated qualified name structure using a name and namespace.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">space</td><td>Namespace string.</td>
    <tr><td class="param">name</td><td>Name string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A reference to the qname structure.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_name" class="ref">EjsName</a>, <a href="#group___ejs_name_1ga8e96e376f3e611d2318ae69ee24778ff" class="ref">ejsMarkName</a></dd></dl>
  </div>
</div>
<h1>EjsNamespace</h1>
<a name="group___ejs_namespace"></a>
<div class="api">
  <div class="prototype">EjsNamespace</div>
  <div class="apiDetail">
<p>Namespace Class.</p>
    <dl><dt><b>Description</b>:</dt><dd>Namespaces are used to qualify names into discrete spaces.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_namespace_1ga970be270f8abe248d46bedcfbc022698" class="ref">ejsCreateNamespace</a>, <a href="#group___ejs_namespace_1ga3514b104e530e365f97c03f4bc9f9b5c" class="ref">ejsCreateReservedNamespace</a>, <a href="#group___ejs_namespace_1ga26256811d200826f0aa85262c7787d9c" class="ref">ejsDefineReservedNamespace</a>, <a href="#group___ejs_namespace_1ga4995911001fe132d0779e962d439003c" class="ref">ejsFormatReservedNamespace</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">EjsString *</td><td><td>value</td><td>
Textual name of the namespace.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_namespace_1ga970be270f8abe248d46bedcfbc022698"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_namespace" class="ref">EjsNamespace</a> *
    ejsCreateNamespace
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name)
  </div>
  <div class="apiDetail">
<p>Create a namespace object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">name</td><td>Space name to use for the namespace.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new namespace object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_namespace" class="ref">EjsNamespace</a>, <a href="#group___ejs_namespace_1ga3514b104e530e365f97c03f4bc9f9b5c" class="ref">ejsCreateReservedNamespace</a>, <a href="#group___ejs_namespace_1ga26256811d200826f0aa85262c7787d9c" class="ref">ejsDefineReservedNamespace</a>, <a href="#group___ejs_namespace_1ga4995911001fe132d0779e962d439003c" class="ref">ejsFormatReservedNamespace</a></dd></dl>
  </div>
</div>
<a name="group___ejs_namespace_1ga3514b104e530e365f97c03f4bc9f9b5c"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_namespace" class="ref">EjsNamespace</a> *
    ejsCreateReservedNamespace
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> *typeName, <a href="#group___ejs_string" class="ref">EjsString</a> *name)
  </div>
  <div class="apiDetail">
<p>Create a reserved namespace.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">typeName</td><td>Type on which to base the formatted namespace name.</td>
    <tr><td class="param">name</td><td>Formatted base name for the namespace.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new namespace object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_namespace" class="ref">EjsNamespace</a>, <a href="#group___ejs_namespace_1ga970be270f8abe248d46bedcfbc022698" class="ref">ejsCreateNamespace</a>, <a href="#group___ejs_namespace_1ga26256811d200826f0aa85262c7787d9c" class="ref">ejsDefineReservedNamespace</a>, <a href="#group___ejs_namespace_1ga4995911001fe132d0779e962d439003c" class="ref">ejsFormatReservedNamespace</a></dd></dl>
  </div>
</div>
<a name="group___ejs_namespace_1ga26256811d200826f0aa85262c7787d9c"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_namespace" class="ref">EjsNamespace</a> *
    ejsDefineReservedNamespace
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_block" class="ref">EjsBlock</a> *block, <a href="#group___ejs_name" class="ref">EjsName</a> *typeName, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Define a reserved namespace on a block.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">block</td><td>Block to modify.</td>
    <tr><td class="param">typeName</td><td>Type on which to base the formatted namespace name.</td>
    <tr><td class="param">name</td><td>Formatted base name for the namespace.</td>
    <tr><td class="param">block</td><td>Block to modify.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new namespace object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_namespace" class="ref">EjsNamespace</a>, <a href="#group___ejs_namespace_1ga970be270f8abe248d46bedcfbc022698" class="ref">ejsCreateNamespace</a>, <a href="#group___ejs_namespace_1ga3514b104e530e365f97c03f4bc9f9b5c" class="ref">ejsCreateReservedNamespace</a>, <a href="#group___ejs_namespace_1ga4995911001fe132d0779e962d439003c" class="ref">ejsFormatReservedNamespace</a></dd></dl>
  </div>
</div>
<a name="group___ejs_namespace_1ga4995911001fe132d0779e962d439003c"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsFormatReservedNamespace
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> *typeName, <a href="#group___ejs_string" class="ref">EjsString</a> *spaceName)
  </div>
  <div class="apiDetail">
<p>Format a reserved namespace name to create a unique namespace.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is used to extend the &quot;internal&quot;, &quot;public&quot;, &quot;private&quot;, and &quot;protected&quot; namespaces to be unique for their owning class. <br/><br/>
 Namespaces are formatted as strings using the following format, where type is optional. Types may be qualified. [type,space] <br/><br/>
 Example: [debug::Shape,public] where Shape was declared as &quot;debug class Shape&quot;.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">typeName</td><td>Type on which to base the formatted namespace name.</td>
    <tr><td class="param">spaceName</td><td>Namespace name.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string containing the formatted name.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_namespace" class="ref">EjsNamespace</a>, <a href="#group___ejs_namespace_1ga970be270f8abe248d46bedcfbc022698" class="ref">ejsCreateNamespace</a>, <a href="#group___ejs_namespace_1ga3514b104e530e365f97c03f4bc9f9b5c" class="ref">ejsCreateReservedNamespace</a>, <a href="#group___ejs_namespace_1ga26256811d200826f0aa85262c7787d9c" class="ref">ejsDefineReservedNamespace</a></dd></dl>
  </div>
</div>
<h1>EjsNull</h1>
<a name="group___ejs_null"></a>
<div class="api">
  <div class="prototype">EjsNull</div>
  <div class="apiDetail">
<p>Null Class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Null class provides the base class for the singleton null instance. This instance is stored in ejs-&gt;nullValue.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_null_1ga3bf82a2a5c4511feb4776b1a0388f156" class="ref">ejsCreateNull</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_null_1ga3bf82a2a5c4511feb4776b1a0388f156"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_null" class="ref">EjsNull</a> *
    ejsCreateNull
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Create the null object.</p>
    <dl><dt><b>Description</b>:</dt><dd>There is one null object in the system.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The null object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_null" class="ref">EjsNull</a></dd></dl>
  </div>
</div>
<h1>EjsNumber</h1>
<a name="group___ejs_number"></a>
<div class="api">
  <div class="prototype">EjsNumber</div>
  <div class="apiDetail">
<p>Number class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Number class provide the base class for all numeric values. The primitive number storage data type may be set via the configure program to be either double, float, int or int64.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec" class="ref">ejsCreateNumber</a>, <a href="#group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9" class="ref">ejsGetDouble</a>, <a href="#group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4" class="ref">ejsGetInt</a>, <a href="#group___ejs_number_1gae4da96689634ac22129839f577cc208a" class="ref">ejsGetInt64</a>, <a href="#group___ejs_number_1ga45311f2f0ea79363270b212e9690546f" class="ref">ejsGetNumber</a>, <a href="#group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15" class="ref">ejsIsInfinite</a>, <a href="#group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1" class="ref">ejsIsNan</a>, <a href="#group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616" class="ref">ejsToNumber</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">MprNumber</td><td><td>value</td><td>
Numeric value.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_number" class="ref">EjsNumber</a> *
    ejsCreateNumber
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1ad74c0abcb5f095bdae78bedeb710071f" class="ref">MprNumber</a> value)
  </div>
  <div class="apiDetail">
<p>Create a number object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>Numeric value to initialize the number object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A number object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_number" class="ref">EjsNumber</a>, <a href="#group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9" class="ref">ejsGetDouble</a>, <a href="#group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4" class="ref">ejsGetInt</a>, <a href="#group___ejs_number_1gae4da96689634ac22129839f577cc208a" class="ref">ejsGetInt64</a>, <a href="#group___ejs_number_1ga45311f2f0ea79363270b212e9690546f" class="ref">ejsGetNumber</a>, <a href="#group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15" class="ref">ejsIsInfinite</a>, <a href="#group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1" class="ref">ejsIsNan</a>, <a href="#group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616" class="ref">ejsToNumber</a></dd></dl>
  </div>
</div>
<a name="group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9"></a>
<div class="api">
  <div class="prototype">
    double
    ejsGetDouble
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Get the numeric value stored in a EjsNumber object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A double value.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_number" class="ref">EjsNumber</a>, <a href="#group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec" class="ref">ejsCreateNumber</a>, <a href="#group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4" class="ref">ejsGetInt</a>, <a href="#group___ejs_number_1gae4da96689634ac22129839f577cc208a" class="ref">ejsGetInt64</a>, <a href="#group___ejs_number_1ga45311f2f0ea79363270b212e9690546f" class="ref">ejsGetNumber</a>, <a href="#group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15" class="ref">ejsIsInfinite</a>, <a href="#group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1" class="ref">ejsIsNan</a>, <a href="#group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616" class="ref">ejsToNumber</a></dd></dl>
  </div>
</div>
<a name="group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4"></a>
<div class="api">
  <div class="prototype">
    int
    ejsGetInt
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Get the numeric value stored in a EjsNumber object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An integer value.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_number" class="ref">EjsNumber</a>, <a href="#group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec" class="ref">ejsCreateNumber</a>, <a href="#group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9" class="ref">ejsGetDouble</a>, <a href="#group___ejs_number_1gae4da96689634ac22129839f577cc208a" class="ref">ejsGetInt64</a>, <a href="#group___ejs_number_1ga45311f2f0ea79363270b212e9690546f" class="ref">ejsGetNumber</a>, <a href="#group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15" class="ref">ejsIsInfinite</a>, <a href="#group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1" class="ref">ejsIsNan</a>, <a href="#group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616" class="ref">ejsToNumber</a></dd></dl>
  </div>
</div>
<a name="group___ejs_number_1gae4da96689634ac22129839f577cc208a"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a>
    ejsGetInt64
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Get an 64 bit integer value equivalent to that stored in an EjsNumber object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A 64 bit integer value.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_number" class="ref">EjsNumber</a>, <a href="#group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec" class="ref">ejsCreateNumber</a>, <a href="#group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9" class="ref">ejsGetDouble</a>, <a href="#group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4" class="ref">ejsGetInt</a>, <a href="#group___ejs_number_1ga45311f2f0ea79363270b212e9690546f" class="ref">ejsGetNumber</a>, <a href="#group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15" class="ref">ejsIsInfinite</a>, <a href="#group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1" class="ref">ejsIsNan</a>, <a href="#group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616" class="ref">ejsToNumber</a></dd></dl>
  </div>
</div>
<a name="group___ejs_number_1ga45311f2f0ea79363270b212e9690546f"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1ad74c0abcb5f095bdae78bedeb710071f" class="ref">MprNumber</a>
    ejsGetNumber
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Get the numeric value stored in a EjsNumber object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A numeric value.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_number" class="ref">EjsNumber</a>, <a href="#group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec" class="ref">ejsCreateNumber</a>, <a href="#group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9" class="ref">ejsGetDouble</a>, <a href="#group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4" class="ref">ejsGetInt</a>, <a href="#group___ejs_number_1gae4da96689634ac22129839f577cc208a" class="ref">ejsGetInt64</a>, <a href="#group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15" class="ref">ejsIsInfinite</a>, <a href="#group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1" class="ref">ejsIsNan</a>, <a href="#group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616" class="ref">ejsToNumber</a></dd></dl>
  </div>
</div>
<a name="group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsInfinite
(<a href="#ejscript_8h_1ad74c0abcb5f095bdae78bedeb710071f" class="ref">MprNumber</a> n)
  </div>
  <div class="apiDetail">
<p>Test if a number is infinite.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">n</td><td>Number to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the number is infinite.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_number" class="ref">EjsNumber</a>, <a href="#group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec" class="ref">ejsCreateNumber</a>, <a href="#group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9" class="ref">ejsGetDouble</a>, <a href="#group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4" class="ref">ejsGetInt</a>, <a href="#group___ejs_number_1gae4da96689634ac22129839f577cc208a" class="ref">ejsGetInt64</a>, <a href="#group___ejs_number_1ga45311f2f0ea79363270b212e9690546f" class="ref">ejsGetNumber</a>, <a href="#group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1" class="ref">ejsIsNan</a>, <a href="#group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616" class="ref">ejsToNumber</a></dd></dl>
  </div>
</div>
<a name="group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsNan
(<a href="#ejscript_8h_1ad74c0abcb5f095bdae78bedeb710071f" class="ref">MprNumber</a> n)
  </div>
  <div class="apiDetail">
<p>Test if a value is not-a-number.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">n</td><td>Number to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the number is not-a-number.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_number" class="ref">EjsNumber</a>, <a href="#group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec" class="ref">ejsCreateNumber</a>, <a href="#group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9" class="ref">ejsGetDouble</a>, <a href="#group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4" class="ref">ejsGetInt</a>, <a href="#group___ejs_number_1gae4da96689634ac22129839f577cc208a" class="ref">ejsGetInt64</a>, <a href="#group___ejs_number_1ga45311f2f0ea79363270b212e9690546f" class="ref">ejsGetNumber</a>, <a href="#group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15" class="ref">ejsIsInfinite</a>, <a href="#group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616" class="ref">ejsToNumber</a></dd></dl>
  </div>
</div>
<a name="group___ejs_number_1gac0e2e92ac62007eeda560430c45b8616"></a>
<div class="api">
  <div class="prototype">
    struct EjsNumber *
    EjsNumber* ejsToNumber
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Cast a variable to a number.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to cast.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A number object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_number" class="ref">EjsNumber</a>, <a href="#group___ejs_number_1gabbc997d13a55ae22b87abb9d3b1df9ec" class="ref">ejsCreateNumber</a>, <a href="#group___ejs_number_1ga0c9faf471c0f3aeef26c9cba92a66bc9" class="ref">ejsGetDouble</a>, <a href="#group___ejs_number_1gabf01f6ec8d3b5f95a9547c535d716ca4" class="ref">ejsGetInt</a>, <a href="#group___ejs_number_1gae4da96689634ac22129839f577cc208a" class="ref">ejsGetInt64</a>, <a href="#group___ejs_number_1ga45311f2f0ea79363270b212e9690546f" class="ref">ejsGetNumber</a>, <a href="#group___ejs_number_1ga3d7f96bd70092c005bc9b37f9c1d0b15" class="ref">ejsIsInfinite</a>, <a href="#group___ejs_number_1gac6b70d868e0c30bb47399363a99eb7b1" class="ref">ejsIsNan</a></dd></dl>
  </div>
</div>
<h1>EjsObj</h1>
<a name="group___ejs_obj"></a>
<div class="api">
  <div class="prototype">EjsObj</div>
  <div class="apiDetail">
<p>Base object from which all objects inherit.</p>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ssize</td><td><td>xtype</td><td>
xtype: typeBits | dynamic &lt;&lt; 1 | visited.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga231549943b24efd03baa0c14b8187d55"></a>
<div class="api">
  <div class="prototype">
    int
    ejsAddObserver
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> **emitterPtr, <a href="#group___ejs_obj" class="ref">EjsObj</a> *name, struct EjsFunction *observer)
  </div>
  <div class="apiDetail">
<p>Add an observer.</p>
    <dl><dt><b>Description</b>:</dt><dd>Add an observer for events when implementing the createVar helper.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">emitterPtr</td><td>Reference to an emitter. If the reference location is NULL, a new emitter will be created and passed back via *emitterPtr.</td>
    <tr><td class="param">name</td><td>Name of events to observe. Can be an array of events.</td>
    <tr><td class="param">observer</td><td>Function to run when selected events are triggered.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsAlloc
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> extra)
  </div>
  <div class="apiDetail">
<p>Allocate a new variable.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will allocate space for a bare variable. This routine should only be called by type factories when implementing the createVar helper.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Type object from which to create an object instance.</td>
    <tr><td class="param">extra</td><td>Size of extra property slots to reserve. This is used for dynamic objects.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga86d9596c0e3798f368f348c781794597"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCastType
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, struct EjsType *type)
  </div>
  <div class="apiDetail">
<p>Cast a variable to a new type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Cast a variable and return a new variable of the required type.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to cast.</td>
    <tr><td class="param">type</td><td>Type to cast to.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsClone
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)
  </div>
  <div class="apiDetail">
<p>Clone a variable.</p>
    <dl><dt><b>Description</b>:</dt><dd>Copy a variable and create a new copy. This may do a shallow or deep copy. A shallow copy will not copy the property instances, rather it will only duplicate the property reference. A deep copy will recursively clone all the properties of the variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to clone.</td>
    <tr><td class="param">deep</td><td>Set to true to do a deep copy.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsClonePot
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *src, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)
  </div>
  <div class="apiDetail">
<p>Copy an object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Copy an object create a new instance. This may do a shallow or deep copy depending on the value of deep. A shallow copy will not copy the property instances, rather it will only duplicate the property reference. A deep copy will recursively clone all the properties of the variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">src</td><td>Source object to copy.</td>
    <tr><td class="param">deep</td><td>Set to true to do a deep copy.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A newly allocated object. Caller must not free as the GC will manage the lifecycle of the variable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450"></a>
<div class="api">
  <div class="prototype">
    int
    ejsCompactPot
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj)
  </div>
  <div class="apiDetail">
<p>Compact an object.</p>
    <dl><dt><b>Description</b>:</dt><dd>This removes deleted properties and compacts property slot references.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to compact.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The number of properties in the object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCreateEmptyPot
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Create an empty property object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a simple object using Object as its base type.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new object instance.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCreateInstance
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, int argc, void *argv)
  </div>
  <div class="apiDetail">
<p>Create a new variable instance.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a new variable instance and invoke any required constructors with the given arguments.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Type from which to create a new instance.</td>
    <tr><td class="param">argc</td><td>Count of args in argv.</td>
    <tr><td class="param">argv</td><td>Vector of arguments. Each arg is an EjsAny.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCreateObj
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, int numSlots)
  </div>
  <div class="apiDetail">
<p>Create a variable.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a variable of the required type. This invokes the createVar helper method for the specified type.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Type to cast to.</td>
    <tr><td class="param">numSlots</td><td>Size of extra property slots to reserve. This is used for dynamic objects.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCreatePot
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsType *type, int size)
  </div>
  <div class="apiDetail">
<p>Create an object instance of the specified type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a new object using the specified type as a base class. Note: the constructor is not called. If you require the constructor to be invoked, use ejsCreateInstance.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Base type to use when creating the object instance.</td>
    <tr><td class="param">size</td><td>Number of extra slots to allocate when creating the object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new object instance.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e"></a>
<div class="api">
  <div class="prototype">
    int
    ejsDefineProperty
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, <a href="#group___ejs_name" class="ref">EjsName</a> qname, struct EjsType *type, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *value)
  </div>
  <div class="apiDetail">
<p>Define a property.</p>
    <dl><dt><b>Description</b>:</dt><dd>Define a property in a variable and give it a name, base type, attributes and default value.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object in which to define a property.</td>
    <tr><td class="param">slotNum</td><td>Slot number in the variable for the property. Slots are numbered sequentially from zero. Set to -1 to request the next available slot number.</td>
    <tr><td class="param">qname</td><td>Qualified name containing a name and a namespace.</td>
    <tr><td class="param">type</td><td>Base type of the property. Set to ejs-&gt;voidType to leave as untyped.</td>
    <tr><td class="param">attributes</td><td>Attribute traits.</td>
    <tr><td class="param">value</td><td>Initial value of the property.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A postitive slot number or a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33"></a>
<div class="api">
  <div class="prototype">
    int
    ejsDeleteProperty
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)
  </div>
  <div class="apiDetail">
<p>Delete a property.</p>
    <dl><dt><b>Description</b>:</dt><dd>Delete a variable&apos;s property and set its slot to null. The slot is not reclaimed and subsequent properties are not compacted.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable in which to delete the property.</td>
    <tr><td class="param">slotNum</td><td>Slot number in the variable for the property to delete.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e"></a>
<div class="api">
  <div class="prototype">
    int
    ejsDeletePropertyByName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname)
  </div>
  <div class="apiDetail">
<p>Delete a property by name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Delete a variable&apos;s property by name and set its slot to null. The property is resolved by using ejsLookupProperty with the specified name. Once deleted, the slot is not reclaimed and subsequent properties are not compacted.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable in which to delete the property.</td>
    <tr><td class="param">qname</td><td>Qualified name for the property including name and namespace.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsDeserialize
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsString *str)
  </div>
  <div class="apiDetail">
<p>Deserialize a JSON encoded string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is the calling signature for C Functions.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">str</td><td>JSON string to deserialize.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Returns an allocated object equivalent to the supplied JSON encoding.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7"></a>
<div class="api">
  <div class="prototype">
    int
    ejsGetLength
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Get a count of properties in a variable.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get a property from a variable at a given slot.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A positive integer count of the properties stored by the variable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetProperty
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)
  </div>
  <div class="apiDetail">
<p>Get a property.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get a property from a variable at a given slot.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    <tr><td class="param">slotNum</td><td>Slot number for the requested property.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The variable property stored at the nominated slot.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsGetPropertyByName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname)
  </div>
  <div class="apiDetail">
<p>Get a property by name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get a property from a variable by name.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    <tr><td class="param">qname</td><td>Qualified name specifying both a namespace and name.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The variable property stored at the nominated slot.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_name" class="ref">EjsName</a>
    ejsGetPropertyName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)
  </div>
  <div class="apiDetail">
<p>Get a variable property&apos;s name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get a property name for the property at a given slot in the variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    <tr><td class="param">slotNum</td><td>Slot number for the requested property.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The qualified property name including namespace and name. Caller must not free.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d"></a>
<div class="api">
  <div class="prototype">
    struct EjsTrait *
    EjsTrait* ejsGetPropertyTraits
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)
  </div>
  <div class="apiDetail">
<p>Get a property&apos;s traits.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get a property&apos;s trait description. The property traits define the properties base type, and access attributes.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable to examine.</td>
    <tr><td class="param">slotNum</td><td>Slot number for the requested property.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A trait structure reference for the property.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924"></a>
<div class="api">
  <div class="prototype">
    int
    ejsGrowPot
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj, int numSlots)
  </div>
  <div class="apiDetail">
<p>Grow a pot object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Grow the property storage for an object. Object properties are stored in slots. To store more properties, you need to grow the slots.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object reference to grow.</td>
    <tr><td class="param">numSlots</td><td>New minimum count of properties. If size is less than the current number of properties, the call will be ignored, i.e. it will not shrink objects.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsInvokeOperator
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int opCode, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *rhs)
  </div>
  <div class="apiDetail">
<p>Invoke an opcode on a native type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Invoke an Ejscript byte code operator on the specified variable given the expression right hand side. Native types would normally implement the invokeOperator helper function to respond to this function call.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable to examine.</td>
    <tr><td class="param">opCode</td><td>Byte ope code to execute.</td>
    <tr><td class="param">rhs</td><td>Expression right hand side for binary expression op codes. May be null for other op codes.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The result of the op code or NULL if the opcode does not require a result.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsInvokeOperatorDefault
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int opCode, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *rhs)
  </div>
  <div class="apiDetail">
<p>Default implementation for operator invoke.</p>
    <dl><dt><b>Description</b>:</dt><dd>Invoke an Ejscript byte code operator on the specified variable given the expression right hand side.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable to examine.</td>
    <tr><td class="param">opCode</td><td>Byte ope code to execute.</td>
    <tr><td class="param">rhs</td><td>Expression right hand side for binary expression op codes. May be null for other op codes.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The result of the op code or NULL if the opcode does not require a result.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLookupProperty
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname)
  </div>
  <div class="apiDetail">
<p>Lookup a property by name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Search for a property by name in the given variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable to examine.</td>
    <tr><td class="param">qname</td><td>Qualified name of the property to search for.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The slot number containing the property. Then use $ejsGetProperty to retrieve the property or alternatively use ejsGetPropertyByName to lookup and retrieve in one step.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f"></a>
<div class="api">
  <div class="prototype">
    void
    ejsManagePot
(void *obj, int flags)
  </div>
  <div class="apiDetail">
<p>Mark an object as currently in use.</p>
    <dl><dt><b>Description</b>:</dt><dd>Mark an object as currently active so the garbage collector will preserve it. This routine should be called by native types that extend EjsObj in their markVar helper.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">obj</td><td>Object to mark as currently being used.</td>
    <tr><td class="param">flags</td><td>manager flags.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsParse
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *str, int prefType)
  </div>
  <div class="apiDetail">
<p>Parse a string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This parses a string and intelligently interprets the data type.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">str</td><td>String to parse.</td>
    <tr><td class="param">prefType</td><td>Preferred type. Set to the reserved type slot number. E.g. S_Number, S_String etc.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Returns an allocated object. Returns undefined if the input cannot be parsed.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga25ab5e7566650730da4f836f43987789"></a>
<div class="api">
  <div class="prototype">
    int
    ejsRemoveObserver
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *emitter, <a href="#group___ejs_obj" class="ref">EjsObj</a> *name, struct EjsFunction *observer)
  </div>
  <div class="apiDetail">
<p>Remove an observer.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">emitter</td><td>Emitter created via <a class="ref" href="#group___ejs_obj_1ga231549943b24efd03baa0c14b8187d55">ejsAddObserver</a></td>
    <tr><td class="param">name</td><td>Name of observed events. Can be an array of events.</td>
    <tr><td class="param">observer</td><td>Observer function provided to <a class="ref" href="#group___ejs_obj_1ga231549943b24efd03baa0c14b8187d55">ejsAddObserver</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gaf90834e338b36a61c7dce1d7c7bb87b5"></a>
<div class="api">
  <div class="prototype">
    int
    ejsSendEvent
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *emitter, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *thisObj, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *arg)
  </div>
  <div class="apiDetail">
<p>Send an event to observers.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call allows one argument to pass to the observer. If you need to pass more, use <a class="ref" href="#group___ejs_obj_1gad08bd8d3f861b0f3769013d52045c417">ejsSendEventv</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">emitter</td><td>Emitter object.</td>
    <tr><td class="param">name</td><td>Name of event to fire.</td>
    <tr><td class="param">thisObj</td><td>Object to use for &quot;this&quot; when invoking the observer.</td>
    <tr><td class="param">arg</td><td>Argument to pass to the observer.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gad08bd8d3f861b0f3769013d52045c417"></a>
<div class="api">
  <div class="prototype">
    int
    ejsSendEventv
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *emitter, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *thisObj, int argc, void *argv)
  </div>
  <div class="apiDetail">
<p>Send an event to observers.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call allows multiple arguments to be passed to the observer. If you only need to pass one, use <a class="ref" href="#group___ejs_obj_1gaf90834e338b36a61c7dce1d7c7bb87b5">ejsSendEvent</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">emitter</td><td>Emitter object.</td>
    <tr><td class="param">name</td><td>Name of event to fire.</td>
    <tr><td class="param">thisObj</td><td>Object to use for &quot;this&quot; when invoking the observer.</td>
    <tr><td class="param">argc</td><td>Argument count of argv.</td>
    <tr><td class="param">argv</td><td>Arguments to pass to the observer.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5"></a>
<div class="api">
  <div class="prototype">
    int
    ejsSetProperty
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, void *obj, int slotNum, void *value)
  </div>
  <div class="apiDetail">
<p>Set a property&apos;s value.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set a value for a property at a given slot in the specified variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    <tr><td class="param">slotNum</td><td>Slot number for the requested property.</td>
    <tr><td class="param">value</td><td>Reference to a value to store.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The slot number of the property updated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1ga45cd5640470482063816220547248eb2"></a>
<div class="api">
  <div class="prototype">
    int
    ejsSetPropertyByName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, void *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname, void *value)
  </div>
  <div class="apiDetail">
<p>Set a property&apos;s value.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set a value for a property. The property is located by name in the specified variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    <tr><td class="param">qname</td><td>Qualified property name.</td>
    <tr><td class="param">value</td><td>Reference to a value to store.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The slot number of the property updated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8"></a>
<div class="api">
  <div class="prototype">
    int
    ejsSetPropertyName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, <a href="#group___ejs_name" class="ref">EjsName</a> qname)
  </div>
  <div class="apiDetail">
<p>Set a property&apos;s name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set a qualified name for a property at the specified slot in the variable. The qualified name consists of a namespace and name - both of which must be persistent. A typical paradigm is for these name strings to be owned by the memory context of the variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable to examine.</td>
    <tr><td class="param">slotNum</td><td>Slot number of the property in the variable.</td>
    <tr><td class="param">qname</td><td>Qualified property name.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The slot number of the property updated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea"></a>
<div class="api">
  <div class="prototype">
    int
    ejsSetPropertyTraits
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, struct EjsType *type, int attributes)
  </div>
  <div class="apiDetail">
<p>Set a property&apos;s traits.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the traits describing a property. These include the property&apos;s base type and access attributes.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Variable to examine.</td>
    <tr><td class="param">slotNum</td><td>Slot number of the property in the variable.</td>
    <tr><td class="param">type</td><td>Base type for the property. Set to NULL for an untyped property.</td>
    <tr><td class="param">attributes</td><td>Integer mask of access attributes.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The slot number of the property updated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_obj_1ga86d9596c0e3798f368f348c781794597" class="ref">ejsCastType</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga6fef857b0036bffaacef456cb47eff3b" class="ref">ejsCreateObj</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_obj_1ga54e1605894366dc559915afb024dc0b7" class="ref">ejsGetLength</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1gae3e172b89698f1ec047b762e3a73accd" class="ref">ejsGetPropertyByName</a>, <a href="#group___ejs_obj_1ga39e47e460f99340d355cb4c37135c6a0" class="ref">ejsGetPropertyName</a>, <a href="#group___ejs_obj_1gaaba9b399c9cb11564755d224b9954b2d" class="ref">ejsGetPropertyTraits</a>, <a href="#group___ejs_obj_1ga0566fd5299746e61ae95de3cbaf54fa2" class="ref">ejsInvokeOperator</a>, <a href="#group___ejs_obj_1ga0bf24478466ec195d8f8d191d0f2b7dd" class="ref">ejsInvokeOperatorDefault</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a></dd></dl>
  </div>
</div>
<h1>EjsPath</h1>
<a name="group___ejs_path"></a>
<div class="api">
  <div class="prototype">EjsPath</div>
  <div class="apiDetail">
<p>Path class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Path class provides file path name services.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_path_1ga89c88658e009637fe471fef151e9b599" class="ref">ejsCreatePath</a>, <a href="#group___ejs_path_1gacb5b025bc35d864fc937fe4ad6a24224" class="ref">ejsCreatePathFromAsc</a>, <a href="#group___ejs_path_1gacd5f3e05c6dfd42be0bc63a684f2c138" class="ref">ejsToPath</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">MprList *</td><td><td>files</td><td>
File list for enumeration.
</td>
    <tr><td class="param">MprPath</td><td><td>info</td><td>
Cached file info.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">cchar *</td><td><td>value</td><td>
Filename path.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_path_1ga50234ab8d65dd433fea18ff170f62f15"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_file_system" class="ref">EjsFileSystem</a> *
    ejsCreateFileSystem
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
  </div>
  <div class="apiDetail">
<p>Create a FileSystem object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a file system object associated with the given pathname.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">path</td><td>Path to describe the file system. Can be any path in the file system.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new file system object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_path_1ga89c88658e009637fe471fef151e9b599" class="ref">ejsCreatePath</a>, <a href="#group___ejs_path_1gacb5b025bc35d864fc937fe4ad6a24224" class="ref">ejsCreatePathFromAsc</a>, <a href="#group___ejs_path_1gacd5f3e05c6dfd42be0bc63a684f2c138" class="ref">ejsToPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_path_1ga89c88658e009637fe471fef151e9b599"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_path" class="ref">EjsPath</a> *
    ejsCreatePath
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *path)
  </div>
  <div class="apiDetail">
<p>Create a Path object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a path object associated with the given pathname.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">path</td><td>Path object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new Path object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_path_1gacb5b025bc35d864fc937fe4ad6a24224" class="ref">ejsCreatePathFromAsc</a>, <a href="#group___ejs_path_1gacd5f3e05c6dfd42be0bc63a684f2c138" class="ref">ejsToPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_path_1gacb5b025bc35d864fc937fe4ad6a24224"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_path" class="ref">EjsPath</a> *
    ejsCreatePathFromAsc
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
  </div>
  <div class="apiDetail">
<p>Create a Path object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a path object from the given ascii path string.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">path</td><td>Null terminated Ascii pathname.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new Path object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_path_1ga89c88658e009637fe471fef151e9b599" class="ref">ejsCreatePath</a>, <a href="#group___ejs_path_1gacd5f3e05c6dfd42be0bc63a684f2c138" class="ref">ejsToPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_path_1ga7d27ac819b3827b66dd3fee21707700b"></a>
<div class="api">
  <div class="prototype">
    void
    ejsLoadHttpService
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Load the Http service.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_path_1ga89c88658e009637fe471fef151e9b599" class="ref">ejsCreatePath</a>, <a href="#group___ejs_path_1gacb5b025bc35d864fc937fe4ad6a24224" class="ref">ejsCreatePathFromAsc</a>, <a href="#group___ejs_path_1gacd5f3e05c6dfd42be0bc63a684f2c138" class="ref">ejsToPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_path_1ga8c5d44c2920c45a03e5d432668339e34"></a>
<div class="api">
  <div class="prototype">
    int
    ejsSetPathAttributes
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)
  </div>
  <div class="apiDetail">
<p>Set the owner, group and permissions of a file.</p>
    <dl><dt><b>Description</b>:</dt><dd>Convert the object to a string and then to a Path.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">path</td><td>Path name to modify.</td>
    <tr><td class="param">options</td><td>Owner, group and permissions options. <ul><li>permissions optional Posix permissions number mask. Defaults to 0664. </li><li>owner String representing the file owner </li><li>group String representing the file group </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new Path object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_path_1ga89c88658e009637fe471fef151e9b599" class="ref">ejsCreatePath</a>, <a href="#group___ejs_path_1gacb5b025bc35d864fc937fe4ad6a24224" class="ref">ejsCreatePathFromAsc</a>, <a href="#group___ejs_path_1gacd5f3e05c6dfd42be0bc63a684f2c138" class="ref">ejsToPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_path_1gaad418e9cce3ebf26addcddf7c6355a3a"></a>
<div class="api">
  <div class="prototype">
    int
    ejsSetupHttpTrace
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="http.html#group___http_trace" class="ref">HttpTrace</a> *trace, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)
  </div>
  <div class="apiDetail">
<p>Setup tracing for Http transactions.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">trace</td><td>HttpTrace object.</td>
    <tr><td class="param">options</td><td>Trace options.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_path_1ga89c88658e009637fe471fef151e9b599" class="ref">ejsCreatePath</a>, <a href="#group___ejs_path_1gacb5b025bc35d864fc937fe4ad6a24224" class="ref">ejsCreatePathFromAsc</a>, <a href="#group___ejs_path_1gacd5f3e05c6dfd42be0bc63a684f2c138" class="ref">ejsToPath</a></dd></dl>
  </div>
</div>
<a name="group___ejs_path_1gacd5f3e05c6dfd42be0bc63a684f2c138"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_path" class="ref">EjsPath</a> *
    ejsToPath
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Convert the object to a Path.</p>
    <dl><dt><b>Description</b>:</dt><dd>Convert the object to a string and then to a Path.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to convert.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new Path object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_path_1ga89c88658e009637fe471fef151e9b599" class="ref">ejsCreatePath</a>, <a href="#group___ejs_path_1gacb5b025bc35d864fc937fe4ad6a24224" class="ref">ejsCreatePathFromAsc</a></dd></dl>
  </div>
</div>
<h1>EjsPool</h1>
<a name="group___ejs_pool"></a>
<div class="api">
  <div class="prototype">EjsPool</div>
  <div class="apiDetail">
<p>Cached pooled of virtual machines.</p>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pool_1gaffed175527ef9de7fbc2f75b441ea9da" class="ref">ejsAllocPoolVM</a>, <a href="#group___ejs_pool_1gae91e29c7556670788cbf87013819a949" class="ref">ejsCreatePool</a>, <a href="#group___ejs_pool_1ga183288605b545455090523a9756365ad" class="ref">ejsFreePoolVM</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>count</td><td>
Count of allocated VMs.
</td>
    <tr><td class="param">char *</td><td><td>hostedDocuments</td><td>
Documents directory for hosted HttpServer.
</td>
    <tr><td class="param">char *</td><td><td>hostedHome</td><td>
Home directory for hosted HttpServer.
</td>
    <tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>lastActivity</td><td>
When a VM was last used.
</td>
    <tr><td class="param">MprList *</td><td><td>list</td><td>
Free list.
</td>
    <tr><td class="param">int</td><td><td>max</td><td>
Maximum number of VMs.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Multithread lock.
</td>
    <tr><td class="param">char *</td><td><td>startScript</td><td>
Template initialization literal script.
</td>
    <tr><td class="param">char *</td><td><td>startScriptPath</td><td>
Template initialization script filename.
</td>
    <tr><td class="param">Ejs *</td><td><td>template</td><td>
VM template to clone.
</td>
    <tr><td class="param">char *</td><td><td>templateScript</td><td>
Template initialization script filename.
</td>
    <tr><td class="param">MprEvent *</td><td><td>timer</td><td>
VM prune timer.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_pool_1gaffed175527ef9de7fbc2f75b441ea9da"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs" class="ref">Ejs</a> *
    ejsAllocPoolVM
(<a href="#group___ejs_pool" class="ref">EjsPool</a> *pool, int flags)
  </div>
  <div class="apiDetail">
<p>Allocate a VM from the pool.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">pool</td><td>EjsPool reference.</td>
    <tr><td class="param">flags</td><td>Reserved.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Returns an Ejs VM instance.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pool_1gae91e29c7556670788cbf87013819a949" class="ref">ejsCreatePool</a>, <a href="#group___ejs_pool_1ga183288605b545455090523a9756365ad" class="ref">ejsFreePoolVM</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pool_1gae91e29c7556670788cbf87013819a949"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_pool" class="ref">EjsPool</a> *
    ejsCreatePool
(int poolMax, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *templateScript, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *startScript, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *startScriptPath, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *home, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *documents)
  </div>
  <div class="apiDetail">
<p>Create a pool for virutal machines.</p>
    <dl><dt><b>Description</b>:</dt><dd></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">poolMax</td><td>Maximum number of VMs in the pool.</td>
    <tr><td class="param">templateScript</td><td>Script to execute to initialize a template VM from which all VMs in the pool will be cloned. This is executed only once when the pool is created. This is typically used to pre-load modules.</td>
    <tr><td class="param">startScript</td><td>Startup script literal. This script is executed each time the VM is allocated from the pool.</td>
    <tr><td class="param">startScriptPath</td><td>As an alternative to startScript, a path to a script may be provided in startScriptPath. If startScriptPath is specified, startScript is ignored.</td>
    <tr><td class="param">home</td><td>Default home directory for virtual machines.</td>
    <tr><td class="param">documents</td><td>Default documents directory for virtual machines.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Allocated pool object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pool_1gaffed175527ef9de7fbc2f75b441ea9da" class="ref">ejsAllocPoolVM</a>, <a href="#group___ejs_pool_1ga183288605b545455090523a9756365ad" class="ref">ejsFreePoolVM</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pool_1ga183288605b545455090523a9756365ad"></a>
<div class="api">
  <div class="prototype">
    void
    ejsFreePoolVM
(<a href="#group___ejs_pool" class="ref">EjsPool</a> *pool, <a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Free a VM back to the pool.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">pool</td><td>EjsPool reference.</td>
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pool_1gaffed175527ef9de7fbc2f75b441ea9da" class="ref">ejsAllocPoolVM</a>, <a href="#group___ejs_pool_1gae91e29c7556670788cbf87013819a949" class="ref">ejsCreatePool</a></dd></dl>
  </div>
</div>
<h1>EjsPot</h1>
<a name="group___ejs_pot"></a>
<div class="api">
  <div class="prototype">EjsPot</div>
  <div class="apiDetail">
<p>Object with properties Type.</p>
    <dl><dt><b>Description</b>:</dt><dd>The EjsPot type is the foundation for types, blocks, functions and scripted classes. It provides storage and hashed lookup for properties. <br/><br/>
 EjsPots may be either dynamic or sealed. Dynamic objects can grow the number of properties. Sealed objects cannot. Sealed objects will store the properties as part of the EjsPot memory chunk. Dynamic objects will perform a separate allocation for the properties that it can grow. <br/><br/>
 EjsPot stores properties in an array of slots. These slots store the property name and a reference to the property value. Dynamic objects own their own name hash. Sealed object instances of a type, will refer to the hash of names owned by the type.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">uint</td><td><td>isBlock</td><td>
Instance is a block.
</td>
    <tr><td class="param">uint</td><td><td>isFrame</td><td>
Instance is a frame.
</td>
    <tr><td class="param">uint</td><td><td>isFunction</td><td>
Instance is a function.
</td>
    <tr><td class="param">uint</td><td><td>isPrototype</td><td>
Object is a type prototype object.
</td>
    <tr><td class="param">uint</td><td><td>isType</td><td>
Instance is a type object.
</td>
    <tr><td class="param">int</td><td><td>numProp</td><td>
Object properties.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">uint</td><td><td>separateHash</td><td>
Object has separate hash memory.
</td>
    <tr><td class="param">uint</td><td><td>separateSlots</td><td>
Object has separate slots[] memory.
</td>
    <tr><td class="param">uint</td><td><td>shortScope</td><td>
Don&apos;t follow type or base classes.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334"></a>
<div class="api">
  <div class="prototype">
    int
    ejsBlendObject
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *dest, <a href="#group___ejs_obj" class="ref">EjsObj</a> *src, int flags)
  </div>
  <div class="apiDetail">
<p>Blend objects.</p>
    <dl><dt><b>Description</b>:</dt><dd>Merge one object into another. This is useful for inheriting and optionally overwriting option hashes (among other things). The blending is done at the primitive property level. If overwrite is true, the property is replaced. If overwrite is false, the property will be added if it does not already exist index worthwhile.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">dest</td><td>Destination object.</td>
    <tr><td class="param">src</td><td>Source object.</td>
    <tr><td class="param">flags</td><td>Select from: <ul><li>EJS_BLEND_DEEP - to copy nested objects recursively </li><li>EJS_BLEND_FUNCTIONS - to copy function properties </li><li>EJS_BLEND_OVERWRITE - to overwrite existing properties in the destination when copying from source </li><li>EJS_BLEND_SUBCLASSES - to copy subclasses in src </li><li>EJS_BLEND_PRIVATE - to copy private properties </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa"></a>
<div class="api">
  <div class="prototype">
    int
    ejsCheckSlot
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj, int slotNum)
  </div>
  <div class="apiDetail">
<p>Check the slot.</p>
    <dl><dt><b>Description</b>:</dt><dd>Check the slot refers to a valid property.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to index.</td>
    <tr><td class="param">slotNum</td><td>Slot number to check.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The slotNum if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCoerceOperands
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *lhs, int opcode, <a href="#group___ejs_obj" class="ref">EjsObj</a> *rhs)
  </div>
  <div class="apiDetail">
<p>Cast the operands as required by the operation code.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">lhs</td><td>Left-hand-side of operation.</td>
    <tr><td class="param">opcode</td><td>Operation byte code.</td>
    <tr><td class="param">rhs</td><td>Right-hand-side of operation.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71"></a>
<div class="api">
  <div class="prototype">
    void
    ejsCreatePotHelpers
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Create the Pot helpers.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633"></a>
<div class="api">
  <div class="prototype">
    void
    ejsFixTraits
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj)
  </div>
  <div class="apiDetail">
<p>Fix traits.</p>
    <dl><dt><b>Description</b>:</dt><dd>Fix the trait type references to point to mutable types in the current interpreter. This is needed after cloning the global object.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to fixup.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc"></a>
<div class="api">
  <div class="prototype">
    int
    ejsGetHashSize
(int numProp)
  </div>
  <div class="apiDetail">
<p>Get the preferred hash size.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">numProp</td><td>Number of properties to hash.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A positive hash size integer.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_name" class="ref">EjsName</a>
    ejsGetPotPropertyName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj, int slotNum)
  </div>
  <div class="apiDetail">
<p>Get a property name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the name of the property at the given slot.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to index.</td>
    <tr><td class="param">slotNum</td><td>Slot number of property to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>EjsName for the property.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb"></a>
<div class="api">
  <div class="prototype">
    int
    ejsIndexProperties
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj)
  </div>
  <div class="apiDetail">
<p>Make or remake a property index.</p>
    <dl><dt><b>Description</b>:</dt><dd>Make a hash lookup of properties. This will be skipped if there are insufficient properties to make the index worthwhile.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to index.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1"></a>
<div class="api">
  <div class="prototype">
    int
    ejsInsertPotProperties
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *pot, int numSlots, int offset)
  </div>
  <div class="apiDetail">
<p>Insert properties.</p>
    <dl><dt><b>Description</b>:</dt><dd>Insert properties at the given offset.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">pot</td><td>Object to modify.</td>
    <tr><td class="param">numSlots</td><td>Number of slots to insert at offset.</td>
    <tr><td class="param">offset</td><td>Slot offset in pot.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsPot
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Determine if a variable is a Pot.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call tests if the variable is a Pot.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the variable is based on EjsPot.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc"></a>
<div class="api">
  <div class="prototype">
    int
    ejsLookupPotProperty
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_pot" class="ref">EjsPot</a> *obj, <a href="#group___ejs_name" class="ref">EjsName</a> qname)
  </div>
  <div class="apiDetail">
<p>Lookup a property in a Pot.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to index.</td>
    <tr><td class="param">qname</td><td>Property name to look for.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>If successful, return the slot number of the propert in obj. Otherwise return -1.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsMatchName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> *a, <a href="#group___ejs_name" class="ref">EjsName</a> *b)
  </div>
  <div class="apiDetail">
<p>Test if two names match.</p>
    <dl><dt><b>Description</b>:</dt><dd>This tests if two names are equivalent.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">a</td><td>First name to test.</td>
    <tr><td class="param">b</td><td>Second name to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the names are equivalent.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67"></a>
<div class="api">
  <div class="prototype">
    struct EjsString *
    EjsString* ejsObjToJSON
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj, int argc, <a href="#group___ejs_obj" class="ref">EjsObj</a> **argv)
  </div>
  <div class="apiDetail">
<p>Method proc for conversion to a JSON string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This method provides the default conversion to a JSON string implementation.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to convert to a JSON string.</td>
    <tr><td class="param">argc</td><td>Ignored.</td>
    <tr><td class="param">argv</td><td>Ignored.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65"></a>
<div class="api">
  <div class="prototype">
    struct EjsString *
    EjsString* ejsObjToString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj, int argc, <a href="#group___ejs_obj" class="ref">EjsObj</a> **argv)
  </div>
  <div class="apiDetail">
<p>Method proc for conversion to a string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This method provides the default conversion to a string implementation.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to convert to a string.</td>
    <tr><td class="param">argc</td><td>Ignored.</td>
    <tr><td class="param">argv</td><td>Ignored.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a"></a>
<div class="api">
  <div class="prototype">
    int
    ejsPropertyHasTrait
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, int attributes)
  </div>
  <div class="apiDetail">
<p>Test a property&apos;s traits.</p>
    <dl><dt><b>Description</b>:</dt><dd>Make a hash lookup of properties. This will be skipped if there are insufficient properties to make the index worthwhile.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    <tr><td class="param">slotNum</td><td>Property slot number in obj to examine.</td>
    <tr><td class="param">attributes</td><td>Attribute mask to test with the selected property&apos;s traits.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A mask of the selected attributes. Returns zero if none match.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190" class="ref">ejsRemovePotProperty</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<a name="group___ejs_pot_1gaf399403da5caa1b3205351d45b47b190"></a>
<div class="api">
  <div class="prototype">
    int
    ejsRemovePotProperty
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum)
  </div>
  <div class="apiDetail">
<p>Remove a property.</p>
    <dl><dt><b>Description</b>:</dt><dd>Remove a property and compact previous properties. WARNING: this should only be used by the compiler.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to index.</td>
    <tr><td class="param">slotNum</td><td>Property slot number to remove.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_pot" class="ref">EjsPot</a>, <a href="#group___ejs_obj_1ga20db9f00da32519edbfc01ae05506d0f" class="ref">ejsAlloc</a>, <a href="#group___ejs_pot_1ga436b5e2c6360d6ef6c6bec25116db334" class="ref">ejsBlendObject</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_pot_1ga0817a5a6e205681cdf026ee34b9bceaa" class="ref">ejsCheckSlot</a>, <a href="#group___ejs_obj_1ga994ef331160672ffe24e71722af2afbd" class="ref">ejsClone</a>, <a href="#group___ejs_obj_1ga5b75189cd94bc67905b3bb05955737be" class="ref">ejsClonePot</a>, <a href="#group___ejs_pot_1gacfaf39b32d58fcd2f3a02ee8ddd0a3da" class="ref">ejsCoerceOperands</a>, <a href="#group___ejs_obj_1ga2432a4809e60621a431b1fc31849b450" class="ref">ejsCompactPot</a>, <a href="#group___ejs_obj_1ga4cc68285ab8faaa3343af1d228bdbf51" class="ref">ejsCreateEmptyPot</a>, <a href="#group___ejs_obj_1ga6582129e0e72ac2c47d86f3da6aa70b1" class="ref">ejsCreateInstance</a>, <a href="#group___ejs_obj_1ga64d4ced5d47388dda86a6e159ec74387" class="ref">ejsCreatePot</a>, <a href="#group___ejs_pot_1gaf0c0d5d2eadfc0642471be63169c6f71" class="ref">ejsCreatePotHelpers</a>, <a href="#group___ejs_obj_1gabae9345552bc5c55d435589f881e5d4e" class="ref">ejsDefineProperty</a>, <a href="#group___ejs_obj_1gac517100e83b31a89d7770a6868d56e33" class="ref">ejsDeleteProperty</a>, <a href="#group___ejs_obj_1ga9aabd9755b8bea71f98e0237d048639e" class="ref">ejsDeletePropertyByName</a>, <a href="#group___ejs_obj_1ga381ce31a67412e7f69205c147d4855ad" class="ref">ejsDeserialize</a>, <a href="#group___ejs_pot_1gadf14abd68a22bff51cdfe1359c1a4633" class="ref">ejsFixTraits</a>, <a href="#group___ejs_pot_1ga776811ffc1eb6671836a70da2d911ddc" class="ref">ejsGetHashSize</a>, <a href="#group___ejs_pot_1gadf32714883ba4e6593eeded82e832b8d" class="ref">ejsGetPotPropertyName</a>, <a href="#group___ejs_obj_1ga1ed91c82c9413c3954a2bb8b23e100a0" class="ref">ejsGetProperty</a>, <a href="#group___ejs_obj_1ga37fc60d8eee2e4dbdfa4891a5ce84924" class="ref">ejsGrowPot</a>, <a href="#group___ejs_pot_1gad7c127664a3b6a4444d50e1869f5f9bb" class="ref">ejsIndexProperties</a>, <a href="#group___ejs_pot_1gaced03a298b7e9d42fbebb49a6b5caca1" class="ref">ejsInsertPotProperties</a>, <a href="#group___ejs_pot_1ga2bf4d8cac958a8e198be9c698e74f082" class="ref">ejsIsPot</a>, <a href="#group___ejs_pot_1ga0b638be29c5d329f925692d1417815bc" class="ref">ejsLookupPotProperty</a>, <a href="#group___ejs_obj_1gac5c83751581f5fcc76ec38635a6d73f8" class="ref">ejsLookupProperty</a>, <a href="#group___ejs_obj_1gaee3f4884a4fe9af1fcde057db8c6b69f" class="ref">ejsManagePot</a>, <a href="#group___ejs_pot_1ga985616f33f2ca8a05a8083eeb1390198" class="ref">ejsMatchName</a>, <a href="#group___ejs_pot_1ga9bb73f82b6822e9367ff7f9d72146f67" class="ref">ejsObjToJSON</a>, <a href="#group___ejs_pot_1ga947e94c75e5b8ec9e4bd28ab12822a65" class="ref">ejsObjToString</a>, <a href="#group___ejs_obj_1gaa3b1c78ba5216f5315d6a681c6c4a6b0" class="ref">ejsParse</a>, <a href="#group___ejs_pot_1ga2d807d21c0f77cc77a5dbd782b23a91a" class="ref">ejsPropertyHasTrait</a>, <a href="#group___ejs_obj_1ga1ec2f882ca5a1396e47f62079bc2e0d5" class="ref">ejsSetProperty</a>, <a href="#group___ejs_obj_1ga45cd5640470482063816220547248eb2" class="ref">ejsSetPropertyByName</a>, <a href="#group___ejs_obj_1gafb4a386b0f091bde2cb1a966a07ae4e8" class="ref">ejsSetPropertyName</a>, <a href="#group___ejs_obj_1gaff9be67192a49b10ed04ab7c2dc7fbea" class="ref">ejsSetPropertyTraits</a></dd></dl>
  </div>
</div>
<h1>EjsRegExp</h1>
<a name="group___ejs_reg_exp"></a>
<div class="api">
  <div class="prototype">EjsRegExp</div>
  <div class="apiDetail">
<p>RegExp Class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The regular expression class provides string pattern matching and substitution.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_reg_exp_1gaeadd405d338274acaa25acad550d4443" class="ref">ejsCreateRegExp</a>, <a href="#group___ejs_reg_exp_1ga638a01b979b00f6ee16a8254cd998d4d" class="ref">ejsRegExpToString</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">void *</td><td><td>compiled</td><td>
Compiled pattern (not alloced).
</td>
    <tr><td class="param">int</td><td><td>endLastMatch</td><td>
End of the last match (one past end).
</td>
    <tr><td class="param">bool</td><td><td>global</td><td>
Search for pattern globally (multiple times).
</td>
    <tr><td class="param">bool</td><td><td>ignoreCase</td><td>
Do case insensitive matching.
</td>
    <tr><td class="param">EjsString *</td><td><td>matched</td><td>
Last matched component.
</td>
    <tr><td class="param">bool</td><td><td>multiline</td><td>
Match patterns over multiple lines.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">int</td><td><td>options</td><td>
Pattern matching options.
</td>
    <tr><td class="param">wchar *</td><td><td>pattern</td><td>
Pattern to match.
</td>
    <tr><td class="param">int</td><td><td>startLastMatch</td><td>
Start of the last match.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_reg_exp_1gaeadd405d338274acaa25acad550d4443"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_reg_exp" class="ref">EjsRegExp</a> *
    ejsCreateRegExp
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *flags)
  </div>
  <div class="apiDetail">
<p>Create a new regular expression object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">pattern</td><td>Regular expression pattern string. The regular expression string should not contain the leading or trailing slash. Embedded slash characters should not be back-quoted.</td>
    <tr><td class="param">flags</td><td>Regular expression flags. Support flags include &quot;g&quot; for global match, &quot;i&quot; to ignore case, &quot;m&quot; match over multiple lines, &quot;y&quot; for sticky match.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A EjsRegExp object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_reg_exp" class="ref">EjsRegExp</a>, <a href="#group___ejs_reg_exp_1ga638a01b979b00f6ee16a8254cd998d4d" class="ref">ejsRegExpToString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_reg_exp_1gaf10d72be3aa1eebdc3e0f3ed5998ff1b"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_reg_exp" class="ref">EjsRegExp</a> *
    ejsParseRegExp
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *pattern)
  </div>
  <div class="apiDetail">
<p>Parse a string and create a regular expression object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">pattern</td><td>Regular expression pattern string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A EjsRegExp object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_reg_exp" class="ref">EjsRegExp</a>, <a href="#group___ejs_reg_exp_1gaeadd405d338274acaa25acad550d4443" class="ref">ejsCreateRegExp</a>, <a href="#group___ejs_reg_exp_1ga638a01b979b00f6ee16a8254cd998d4d" class="ref">ejsRegExpToString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_reg_exp_1ga638a01b979b00f6ee16a8254cd998d4d"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsRegExpToString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_reg_exp" class="ref">EjsRegExp</a> *rp)
  </div>
  <div class="apiDetail">
<p>Get a string representation of a regular expression.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">rp</td><td>Regular expression.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string representation of a regular expression. The result will be of the format: &quot;/PATTERN/suffixes&quot;.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_reg_exp" class="ref">EjsRegExp</a>, <a href="#group___ejs_reg_exp_1gaeadd405d338274acaa25acad550d4443" class="ref">ejsCreateRegExp</a></dd></dl>
  </div>
</div>
<h1>EjsRequest</h1>
<a name="group___ejs_request"></a>
<div class="api">
  <div class="prototype">EjsRequest</div>
  <div class="apiDetail">
<p>Request Class.</p>
    <dl><dt><b>Description</b>:</dt><dd><verbatim>Request objects represent a single Http request.
</verbatim></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_request_1ga1f8c776a032ffd7b147cbb0dc094c2e7" class="ref">ejsCloneRequest</a>, <a href="#group___ejs_request_1gae4d5165d879868c4cea4a78939c46cb8" class="ref">ejsCreateRequest</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsObj *</td><td><td>absHome</td><td>
Absolute URI to the home of the application from this request.
</td>
    <tr><td class="param">struct EjsRequest *</td><td><td>cloned</td><td>
Request that was cloned.
</td>
    <tr><td class="param">int</td><td><td>closed</td><td>
Request closed and &quot;close&quot; event has been issued.
</td>
    <tr><td class="param">EjsObj *</td><td><td>config</td><td>
Request config environment.
</td>
    <tr><td class="param">HttpConn *</td><td><td>conn</td><td>
Underlying Http connection object.
</td>
    <tr><td class="param">EjsObj *</td><td><td>cookies</td><td>
Cached cookies.
</td>
    <tr><td class="param">EjsPath *</td><td><td>dir</td><td>
Home directory containing the application.
</td>
    <tr><td class="param">int</td><td><td>dontAutoFinalize</td><td>
Suppress auto-finalization.
</td>
    <tr><td class="param">Ejs *</td><td><td>ejs</td><td>
Ejscript interpreter handle.
</td>
    <tr><td class="param">EjsObj *</td><td><td>emitter</td><td>
Event emitter.
</td>
    <tr><td class="param">EjsObj *</td><td><td>env</td><td>
Request.env.
</td>
    <tr><td class="param">int</td><td><td>error</td><td>
Request errored and &quot;error&quot; event has been issued.
</td>
    <tr><td class="param">EjsPath *</td><td><td>filename</td><td>
Physical resource filename.
</td>
    <tr><td class="param">EjsObj *</td><td><td>files</td><td>
Files object.
</td>
    <tr><td class="param">int</td><td><td>finalized</td><td>
Request has written all output data.
</td>
    <tr><td class="param">EjsString *</td><td><td>formData</td><td>
Form data as a stable, sorted string.
</td>
    <tr><td class="param">EjsObj *</td><td><td>headers</td><td>
Headers object.
</td>
    <tr><td class="param">EjsUri *</td><td><td>home</td><td>
Relative URI to the home of the application from this request.
</td>
    <tr><td class="param">EjsString *</td><td><td>host</td><td>
Host property.
</td>
    <tr><td class="param">EjsObj *</td><td><td>limits</td><td>
Limits object.
</td>
    <tr><td class="param">EjsObj *</td><td><td>log</td><td>
Log object.
</td>
    <tr><td class="param">EjsObj *</td><td><td>originalUri</td><td>
Saved original URI.
</td>
    <tr><td class="param">EjsObj *</td><td><td>params</td><td>
Form variables + routing variables.
</td>
    <tr><td class="param">EjsString *</td><td><td>pathInfo</td><td>
PathInfo property.
</td>
    <tr><td class="param">EjsNumber *</td><td><td>port</td><td>
Port property.
</td>
    <tr><td class="param">EjsPot</td><td><td>pot</td><td>
Base object storage.
</td>
    <tr><td class="param">int</td><td><td>probedSession</td><td>
Determined if a session exists.
</td>
    <tr><td class="param">EjsString *</td><td><td>query</td><td>
Query property.
</td>
    <tr><td class="param">EjsString *</td><td><td>reference</td><td>
Reference property.
</td>
    <tr><td class="param">EjsObj *</td><td><td>responseHeaders</td><td>
Headers object.
</td>
    <tr><td class="param">EjsObj *</td><td><td>route</td><td>
Matching route in route table.
</td>
    <tr><td class="param">int</td><td><td>running</td><td>
Request has started.
</td>
    <tr><td class="param">EjsString *</td><td><td>scheme</td><td>
Scheme property.
</td>
    <tr><td class="param">EjsString *</td><td><td>scriptName</td><td>
ScriptName property.
</td>
    <tr><td class="param">EjsHttpServer *</td><td><td>server</td><td>
Owning server.
</td>
    <tr><td class="param">struct EjsSession *</td><td><td>session</td><td>
Current session.
</td>
    <tr><td class="param">EjsUri *</td><td><td>uri</td><td>
Complete uri.
</td>
    <tr><td class="param">EjsByteArray *</td><td><td>writeBuffer</td><td>
Write buffer for capturing output.
</td>
    <tr><td class="param">ssize</td><td><td>written</td><td>
Count of data bytes written to the client.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_request_1ga1f8c776a032ffd7b147cbb0dc094c2e7"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_request" class="ref">EjsRequest</a> *
    ejsCloneRequest
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_request" class="ref">EjsRequest</a> *req, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> deep)
  </div>
  <div class="apiDetail">
<p>Clone a request into another interpreter.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs interpreter handle returned from $ejsCreate.</td>
    <tr><td class="param">req</td><td>Original request to copy.</td>
    <tr><td class="param">deep</td><td>Ignored.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new request object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_request" class="ref">EjsRequest</a>, <a href="#group___ejs_request_1gae4d5165d879868c4cea4a78939c46cb8" class="ref">ejsCreateRequest</a></dd></dl>
  </div>
</div>
<a name="group___ejs_request_1gae4d5165d879868c4cea4a78939c46cb8"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_request" class="ref">EjsRequest</a> *
    ejsCreateRequest
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_http_server" class="ref">EjsHttpServer</a> *server, <a href="http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *dir)
  </div>
  <div class="apiDetail">
<p>Create a new request.</p>
Create a new request object associated with the given Http connection
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs interpreter handle returned from $ejsCreate.</td>
    <tr><td class="param">server</td><td>EjsHttpServer owning this request.</td>
    <tr><td class="param">conn</td><td>Http connection object.</td>
    <tr><td class="param">dir</td><td>Default directory containing web documents.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new request object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_request" class="ref">EjsRequest</a>, <a href="#group___ejs_request_1ga1f8c776a032ffd7b147cbb0dc094c2e7" class="ref">ejsCloneRequest</a></dd></dl>
  </div>
</div>
<h1>EjsSession</h1>
<a name="group___ejs_session"></a>
<div class="api">
  <div class="prototype">EjsSession</div>
  <div class="apiDetail">
<p>Session Class.</p>
    <dl><dt><b>Description</b>:</dt><dd><verbatim>Session objects represent a shared session state object into which Http Requests and store and retrieve data
that persists beyond a single request.
</verbatim></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_session_1gaceee664902b7431cacd92456152c3478" class="ref">ejsDestroySession</a>, <a href="#group___ejs_session_1gacfdf3f7f5fee5eea23b1152b089a3135" class="ref">ejsGetSession</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_session_1gaceee664902b7431cacd92456152c3478"></a>
<div class="api">
  <div class="prototype">
    int
    ejsDestroySession
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_session" class="ref">EjsSession</a> *session)
  </div>
  <div class="apiDetail">
<p>Destroy as session.</p>
This destroys the session object so that subsequent requests will need to establish a new session
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs interpreter handle returned from $ejsCreate.</td>
    <tr><td class="param">session</td><td>Session object created via <a class="ref" href="#group___ejs_session_1gacfdf3f7f5fee5eea23b1152b089a3135">ejsGetSession()</a></td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_session" class="ref">EjsSession</a>, <a href="#group___ejs_session_1gacfdf3f7f5fee5eea23b1152b089a3135" class="ref">ejsGetSession</a></dd></dl>
  </div>
</div>
<a name="group___ejs_session_1gacfdf3f7f5fee5eea23b1152b089a3135"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_session" class="ref">EjsSession</a> *
    ejsGetSession
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *key, <a href="mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> timeout, int create)
  </div>
  <div class="apiDetail">
<p>Get a session object for a given key.</p>
This will create a session if the given key is NULL or has expired
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs interpreter handle returned from $ejsCreate.</td>
    <tr><td class="param">key</td><td>String containing the session ID.</td>
    <tr><td class="param">timeout</td><td>Timeout to use for the session if one is created.</td>
    <tr><td class="param">create</td><td>Create a new session if an existing session cannot be found or it has expired.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new session object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_session" class="ref">EjsSession</a>, <a href="#group___ejs_session_1gaceee664902b7431cacd92456152c3478" class="ref">ejsDestroySession</a></dd></dl>
  </div>
</div>
<a name="group___ejs_session_1gaa9b6ddd0a43f3d73e869f759f6aa9117"></a>
<div class="api">
  <div class="prototype">
    void
    ejsSetSessionTimeout
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_session" class="ref">EjsSession</a> *sp, <a href="mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan)
  </div>
  <div class="apiDetail">
<p>Set a session timeout.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs interpreter handle returned from $ejsCreate.</td>
    <tr><td class="param">sp</td><td>Session object.</td>
    <tr><td class="param">lifespan</td><td>Lifespan in milliseconds.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_session" class="ref">EjsSession</a>, <a href="#group___ejs_session_1gaceee664902b7431cacd92456152c3478" class="ref">ejsDestroySession</a>, <a href="#group___ejs_session_1gacfdf3f7f5fee5eea23b1152b089a3135" class="ref">ejsGetSession</a></dd></dl>
  </div>
</div>
<h1>EjsSocket</h1>
<a name="group___ejs_socket"></a>
<div class="api">
  <div class="prototype">EjsSocket</div>
  <div class="apiDetail">
<p>Socket Class.</p>
    <dl><dt><b>Description</b>:</dt><dd></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_socket_1ga96fc0527a264a6190f8b9384280a1d3f" class="ref">ejsCreateSocket</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">char *</td><td><td>address</td><td>
Remote address.
</td>
    <tr><td class="param">int</td><td><td>async</td><td>
In async mode.
</td>
    <tr><td class="param">EjsByteArray *</td><td><td>data</td><td>
Buffered write data.
</td>
    <tr><td class="param">Ejs *</td><td><td>ejs</td><td>
Interp reference.
</td>
    <tr><td class="param">EjsObj *</td><td><td>emitter</td><td>
Event emitter.
</td>
    <tr><td class="param">int</td><td><td>mask</td><td>
IO event mask.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Multithread sync.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">int</td><td><td>port</td><td>
Remote port.
</td>
    <tr><td class="param">MprSocket *</td><td><td>sock</td><td>
Underlying MPR socket object.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_socket_1ga96fc0527a264a6190f8b9384280a1d3f"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_socket" class="ref">EjsSocket</a> *
    ejsCreateSocket
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="mpr.html#group___mpr_socket" class="ref">MprSocket</a> *sock, <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> async)
  </div>
  <div class="apiDetail">
<p>Create a new Socket object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">sock</td><td>Socket object.</td>
    <tr><td class="param">async</td><td>True if running in async non-blocking mode.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new Socket object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_socket" class="ref">EjsSocket</a></dd></dl>
  </div>
</div>
<h1>EjsString</h1>
<a name="group___ejs_string"></a>
<div class="api">
  <div class="prototype">EjsString</div>
  <div class="apiDetail">
<p>String Class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The String class provides the base class for all strings. Each String object represents a single immutable linear sequence of characters. Strings have operators for: comparison, concatenation, copying, searching, conversion, matching, replacement, and, subsetting. <br/><br/>
 Strings are currently sequences of Unicode characters. Depending on the configuration, they may be 8, 16 or 32 bit code point values.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ssize</td><td><td>length</td><td>
Length of string.
</td>
    <tr><td class="param">struct EjsString *</td><td><td>next</td><td>
Next string in hash chain link when interning.
</td>
    <tr><td class="param">struct EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">struct EjsString *</td><td><td>prev</td><td>
Prev string in hash chain.
</td>
    <tr><td class="param">wchar</td><td><td>value[ARRAY_FLEX]</td><td>
String value.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014"></a>
<div class="api">
  <div class="prototype">
    int
    ejsAtoi
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, int radix)
  </div>
  <div class="apiDetail">
<p>Parse a string and convert to an integer.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">sp</td><td>String to parse.</td>
    <tr><td class="param">radix</td><td>Radix for parsing the string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Integer representation of the string.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c"></a>
<div class="api">
  <div class="prototype">
    int
    ejsCompareAsc
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s2)
  </div>
  <div class="apiDetail">
<p>Compare a string with a multibyte string.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">s1</td><td>First string.</td>
    <tr><td class="param">s2</td><td>Null terminated Ascii string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Return zero if the strings are identical. Return -1 if s1 is less than s2. Otherwise return 1.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2"></a>
<div class="api">
  <div class="prototype">
    int
    ejsCompareString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="#group___ejs_string" class="ref">EjsString</a> *s2)
  </div>
  <div class="apiDetail">
<p>Compare two strings.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">s1</td><td>First string.</td>
    <tr><td class="param">s2</td><td>Second string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Return zero if the strings are identical. Return -1 if s1 is less than s2. Otherwise return 1.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4"></a>
<div class="api">
  <div class="prototype">
    int
    ejsCompareSubstring
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="#group___ejs_string" class="ref">EjsString</a> *s2, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> offset, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Compare a substring.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call compares the first string with a substring in the second.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">s1</td><td>First string to compare.</td>
    <tr><td class="param">s2</td><td>Second string.</td>
    <tr><td class="param">offset</td><td>Offset in string to take the substring.</td>
    <tr><td class="param">len</td><td>Length of the substring.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Return zero if the strings are identical. Return -1 if s1 is less than s2. Otherwise return 1.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f"></a>
<div class="api">
  <div class="prototype">
    int
    ejsCompareWide
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *s2, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Compare a string with a wide string.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">s1</td><td>First string.</td>
    <tr><td class="param">s2</td><td>Wide string.</td>
    <tr><td class="param">len</td><td>Maximum length in characters to compare.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Return zero if the strings are identical. Return -1 if s1 is less than s2. Otherwise return 1.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e"></a>
<div class="api">
  <div class="prototype">
    int
    ejsContainsAsc
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pat)
  </div>
  <div class="apiDetail">
<p>Test if a string contains an ascii substring.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">sp</td><td>Source string.</td>
    <tr><td class="param">pat</td><td>Ascii string pattern to search for.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The index in the string where the pattern was found. Otherwise return -1.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53"></a>
<div class="api">
  <div class="prototype">
    int
    ejsContainsChar
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, int charPat)
  </div>
  <div class="apiDetail">
<p>Test if a string contains a character.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">sp</td><td>Source string.</td>
    <tr><td class="param">charPat</td><td>Character to search for.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The index in the string where the character was found. Otherwise return -1.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga113cc39c09635fddd20894865bdbab79"></a>
<div class="api">
  <div class="prototype">
    int
    ejsContainsString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, <a href="#group___ejs_string" class="ref">EjsString</a> *pat)
  </div>
  <div class="apiDetail">
<p>Test if a string contains another string.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">sp</td><td>Source string.</td>
    <tr><td class="param">pat</td><td>String pattern to search for.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The index in the string where the pattern was found. Otherwise return -1.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsCreateBareString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Create an empty string object.</p>
This creates an uninitialized string object of the requrired size. Once initialized, the string must be &quot;interned&quot; via $ejsInternString
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">len</td><td>Length of space to reserve for future string data.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga8aeef72a34295c9e4df136996628c413"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsCreateString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Create a string object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>C string value to define for the string object. Note: this will soon be changed to unicode.</td>
    <tr><td class="param">len</td><td>Length of string to examine in value.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsCreateStringFromAsc
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Create a string from ascii.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>Null terminated ascii string value to intern.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Allocated string. These are references into the interned string pool.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga905a81a7379527321346e86ffacea04b"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsCreateStringFromBytes
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Create a string from an ascii block.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>UTF-8 multibyte string value to intern.</td>
    <tr><td class="param">len</td><td>Length of the string in bytes.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Allocated string. These are references into the interned string pool.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsCreateStringFromConst
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsModule *mp, int index)
  </div>
  <div class="apiDetail">
<p>Create a string from a module string constant.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">mp</td><td>Module object.</td>
    <tr><td class="param">index</td><td>String constant index.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Allocated string. These are references into the interned string pool.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga560852e85d46275143be21477a869899"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsCreateStringFromMulti
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Create a string from UTF-8 multibyte string.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>Ascii string value to intern.</td>
    <tr><td class="param">len</td><td>Length of value in bytes.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Allocated string. These are references into the interned string pool.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9"></a>
<div class="api">
  <div class="prototype">
    void
    ejsDestroyIntern
(struct EjsIntern *intern)
  </div>
  <div class="apiDetail">
<p>Destroy the intern string cache.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">intern</td><td>Reference to the intern object.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsInternAsc
(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Intern a string object from an Ascii string.</p>
    <dl><dt><b>Description</b>:</dt><dd>A string is created using the ascii string as input.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>Ascii string buffer.</td>
    <tr><td class="param">len</td><td>Size of the input value string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The internalized string object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsInternMulti
(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Intern a string object from a UTF-8 string.</p>
    <dl><dt><b>Description</b>:</dt><dd>A string is created using the UTF-8 string as input.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>UTF-8 string buffer.</td>
    <tr><td class="param">len</td><td>Size of the input value string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The internalized string object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga634237154071579455c008c164c39553"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsInternString
(<a href="#group___ejs_string" class="ref">EjsString</a> *sp)
  </div>
  <div class="apiDetail">
<p>Intern a string object.</p>
    <dl><dt><b>Description</b>:</dt><dd>This stores the string in the internal string pool. This is required if the string was created via ejsCreateBareString. The ejsCreateString routine will intern the string automatcially.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">sp</td><td>String object to intern.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The internalized string object. NOTE: this may be different to the object passed in, if the string value was already present in the intern pool.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsInternWide
(struct Ejs *ejs, <a href="osdep.html#osdep_8h_1ad5f5c40c5a4a2e88c69a886ff0d69b1d" class="ref">wchar</a> *value, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Intern a string object from a UTF-16 string.</p>
    <dl><dt><b>Description</b>:</dt><dd>A string is created using the UTF-16 string as input.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">value</td><td>UTF-16 string buffer.</td>
    <tr><td class="param">len</td><td>Size of the input value string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The internalized string object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsJoinString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *s1, <a href="#group___ejs_string" class="ref">EjsString</a> *s2)
  </div>
  <div class="apiDetail">
<p>Join two strings.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">s1</td><td>First string to join.</td>
    <tr><td class="param">s2</td><td>Second string to join.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new string representing the joined strings.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsJoinStrings
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *src, ...)
  </div>
  <div class="apiDetail">
<p>Join strings.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">src</td><td>First string to join.</td>
    <tr><td class="param">...</td><td>Other strings to join.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new string representing the joined strings.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsSerialize
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int flags)
  </div>
  <div class="apiDetail">
<p>Serialize a variable into JSON format.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Value to cast.</td>
    <tr><td class="param">flags</td><td>Serialization options. The supported options are: <ul><li>EJS_JSON_SHOW_COMMAS - Always use commas after properties </li><li>EJS_JSON_SHOW_HIDDEN - Include hidden properties  </li><li>EJS_JSON_SHOW_NOQUOTES - Omit quotes on properties if possible </li><li>EJS_JSON_SHOW_NAMESPACES - Include namespaces in property names  </li><li>EJS_JSON_SHOW_NULLS - Include null properties  </li><li>EJS_JSON_SHOW_REGEXP - Emit native regular expression literals </li><li>EJS_JSON_SHOW_PRETTY - Use human-readable multiline presentation  </li><li>EJS_JSON_SHOW_SUBCLASSES - Include subclass properties  </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsSerializeWithOptions
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)
  </div>
  <div class="apiDetail">
<p>Serialize a variable into JSON format.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Value to cast.</td>
    <tr><td class="param">options</td><td>Serialization options. The supported options are: <ul><li>baseClasses - Include subclass properties  </li><li>hidden - Include hidden properties  </li><li>namespaces - Include namespaces in property names  </li><li>pretty - Use human-readable multiline presentation  </li><li>depth - Set a maximum depth to recurse in the object </li><li>replacer - Function that determines how object values are stringified for objects without a toJSON method. The replace has the following signature: function replacer(key: String, value: String): String </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsSprintf
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Format arguments.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fmt</td><td>Format specifier.</td>
    <tr><td class="param">...</td><td>Arguments for the format specifiers.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A formatted string.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87"></a>
<div class="api">
  <div class="prototype">
    int
    ejsStartsWithAsc
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pat)
  </div>
  <div class="apiDetail">
<p>Test if a string starts with an ascii pattern.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">sp</td><td>Source string.</td>
    <tr><td class="param">pat</td><td>Pattern to search for.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The index in the string where the pattern was found. Otherwise return -1.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsSubstring
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *src, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> offset, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Get a substring.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get a substring at a given offset.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">src</td><td>Source string.</td>
    <tr><td class="param">offset</td><td>Offset in string to take the substring.</td>
    <tr><td class="param">len</td><td>Length of the substring.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The substring.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsToJSON
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, <a href="#group___ejs_obj" class="ref">EjsObj</a> *options)
  </div>
  <div class="apiDetail">
<p>Convert a variable to a string in JSON format.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Value to cast.</td>
    <tr><td class="param">options</td><td>Encoding options. See serialize for details.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsToLower
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp)
  </div>
  <div class="apiDetail">
<p>Convert a string to lower case.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">sp</td><td>Source string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A lower case version of the input string.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa"></a>
<div class="api">
  <div class="prototype">
    char *
    ejsToMulti
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, void *obj)
  </div>
  <div class="apiDetail">
<p>Convert an object to a UTF-8 string representation.</p>
    <dl><dt><b>Description</b>:</dt><dd>The object is converted to a string and then serialized into UTF-8.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to convert.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A multibyte UTF-8 representation.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsToString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Cast a variable to a string.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to convert.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga1554254812932883bd7c301661a4b624"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsToUpper
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *sp)
  </div>
  <div class="apiDetail">
<p>Convert a string to upper case.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">sp</td><td>Source string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A upper case version of the input string.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga4497cce6148677baa8e35887c6baee45" class="ref">ejsTruncateString</a></dd></dl>
  </div>
</div>
<a name="group___ejs_string_1ga4497cce6148677baa8e35887c6baee45"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsTruncateString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *src, <a href="osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
  </div>
  <div class="apiDetail">
<p>Truncate a string.</p>
    <dl><dt><b>Description</b>:</dt><dd>Truncate the string and return a new string. Note: the original is not modified.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">src</td><td>Source string.</td>
    <tr><td class="param">len</td><td>Length of the result string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The substring.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_string" class="ref">EjsString</a>, <a href="#group___ejs_string_1ga08fa834f19c7fbeb614331c5c871f014" class="ref">ejsAtoi</a>, <a href="#group___ejs_string_1ga708e6a95d92ab7af1861baba3897b54c" class="ref">ejsCompareAsc</a>, <a href="#group___ejs_string_1gaf28e0939340fb995a9bd04a75a2900f2" class="ref">ejsCompareString</a>, <a href="#group___ejs_string_1ga4e12fe4a6a110a8f00f8e122aba83df4" class="ref">ejsCompareSubstring</a>, <a href="#group___ejs_string_1ga6a260927bd3df5edad13557d56808a8f" class="ref">ejsCompareWide</a>, <a href="#group___ejs_string_1ga5d5cca539016553a28e76ac08d55257e" class="ref">ejsContainsAsc</a>, <a href="#group___ejs_string_1ga7a74bde1b88538e1bb746a5a1ce2bb53" class="ref">ejsContainsChar</a>, <a href="#group___ejs_string_1ga113cc39c09635fddd20894865bdbab79" class="ref">ejsContainsString</a>, <a href="#group___ejs_string_1ga062ee027f2845d94ecb15c6941cbe42b" class="ref">ejsCreateBareString</a>, <a href="#group___ejs_string_1ga8aeef72a34295c9e4df136996628c413" class="ref">ejsCreateString</a>, <a href="#group___ejs_string_1gab1fbea44cd70dc28d8a49b70d0de0556" class="ref">ejsCreateStringFromAsc</a>, <a href="#group___ejs_string_1ga905a81a7379527321346e86ffacea04b" class="ref">ejsCreateStringFromBytes</a>, <a href="#group___ejs_string_1ga25f6078b7d29fdcfdcd8b9353589906a" class="ref">ejsCreateStringFromConst</a>, <a href="#group___ejs_string_1ga560852e85d46275143be21477a869899" class="ref">ejsCreateStringFromMulti</a>, <a href="#group___ejs_string_1ga38175856fcea3440ebd5c4076b695ff9" class="ref">ejsDestroyIntern</a>, <a href="#group___ejs_string_1ga379df95eb6203fed78a5ef432ba7376f" class="ref">ejsInternAsc</a>, <a href="#group___ejs_string_1gac34c3f60b9801b24289e1414d6d9a230" class="ref">ejsInternMulti</a>, <a href="#group___ejs_string_1ga634237154071579455c008c164c39553" class="ref">ejsInternString</a>, <a href="#group___ejs_string_1ga6558ec0637c52d1350554bc302cb2d6d" class="ref">ejsInternWide</a>, <a href="#group___ejs_string_1gaabb7adcb083b6b8c6224bef090642e23" class="ref">ejsJoinString</a>, <a href="#group___ejs_string_1ga62e62d18a3a13356dd03e1f738b08024" class="ref">ejsJoinStrings</a>, <a href="#group___ejs_string_1gadd7d642dc5c034432868c46c63ab0708" class="ref">ejsSerialize</a>, <a href="#group___ejs_string_1ga6aa007bc9cb28bc124139b3e26e7fe3d" class="ref">ejsSerializeWithOptions</a>, <a href="#group___ejs_string_1ga4806e79a09974744c3e1fad813239b4f" class="ref">ejsSprintf</a>, <a href="#group___ejs_string_1ga91477dd51b0f6255001e5e8c22ef0e87" class="ref">ejsStartsWithAsc</a>, <a href="#group___ejs_string_1gabe2191ba4ab5e97c1f621605dcfcd611" class="ref">ejsSubstring</a>, <a href="#group___ejs_string_1ga0d892b6a5ea4591b8c1a663b7e3122ac" class="ref">ejsToJSON</a>, <a href="#group___ejs_string_1ga1055b572a9a6dc51b5c9f96bf997024c" class="ref">ejsToLower</a>, <a href="#group___ejs_string_1ga5f09bb624333fce4fca9206d7687f4fa" class="ref">ejsToMulti</a>, <a href="#group___ejs_string_1gaebbc0b0666e25fddfbb39055ef427cea" class="ref">ejsToString</a>, <a href="#group___ejs_string_1ga1554254812932883bd7c301661a4b624" class="ref">ejsToUpper</a></dd></dl>
  </div>
</div>
<h1>EjsTimer</h1>
<a name="group___ejs_timer"></a>
<div class="api">
  <div class="prototype">EjsTimer</div>
  <div class="apiDetail">
<p>Timer Class.</p>
    <dl><dt><b>Description</b>:</dt><dd>Timers manage the scheduling and execution of Ejscript functions. Timers run repeatedly until stopped by calling the stop method and are scheduled with a granularity of 1 millisecond.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsArray *</td><td><td>args</td><td>
Callback args.
</td>
    <tr><td class="param">EjsFunction *</td><td><td>callback</td><td>
Callback function.
</td>
    <tr><td class="param">int</td><td><td>drift</td><td>
Timer event is allowed to drift if system conditions requrie.
</td>
    <tr><td class="param">Ejs *</td><td><td>ejs</td><td>
Interp reference - needed for background timers.
</td>
    <tr><td class="param">MprEvent *</td><td><td>event</td><td>
MPR event for the timer.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">EjsFunction *</td><td><td>onerror</td><td>
onerror function.
</td>
    <tr><td class="param">int</td><td><td>period</td><td>
Time in msec between invocations.
</td>
    <tr><td class="param">int</td><td><td>repeat</td><td>
Timer repeatedly fires.
</td>
    </table></dd></dl>
  </div>
</div>
<h1>EjsType</h1>
<a name="group___ejs_type"></a>
<div class="api">
  <div class="prototype">EjsType</div>
  <div class="apiDetail">
<p>Type class.</p>
    <dl><dt><b>Description</b>:</dt><dd>Classes in Ejscript are represented by instances of an EjsType. Types are templates for creating instances of the given type, but they are also are runtime accessible objects. Types contain the static properties and methods for objects and store these in their object slots array. They store the instance properties in the type-&gt;instance object. EjsType inherits from EjsBlock, EjsObj and EjsObj.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">uint</td><td><td>__pad0__</td><td>
Type is mutable (has changable state).
</td>
    <tr><td class="param">struct EjsType *</td><td><td>baseType</td><td>
Base class.
</td>
    <tr><td class="param">uint</td><td><td>callsSuper</td><td>
Constructor calls super().
</td>
    <tr><td class="param">uint</td><td><td>configured</td><td>
Type has been configured with native methods.
</td>
    <tr><td class="param">EjsFunction</td><td><td>constructor</td><td>
Constructor function and type properties.
</td>
    <tr><td class="param">uint</td><td><td>dynamicInstances</td><td>
Object instances may add properties.
</td>
    <tr><td class="param">int</td><td><td>endClass</td><td>
Offset in mod file for end of class.
</td>
    <tr><td class="param">uint</td><td><td>final</td><td>
Type is final.
</td>
    <tr><td class="param">uint</td><td><td>hasBaseConstructors</td><td>
Base types has constructors.
</td>
    <tr><td class="param">uint</td><td><td>hasBaseInitializers</td><td>
Base types have initializers.
</td>
    <tr><td class="param">uint</td><td><td>hasConstructor</td><td>
Type has a constructor.
</td>
    <tr><td class="param">uint</td><td><td>hasInitializer</td><td>
Type has static level initialization code.
</td>
    <tr><td class="param">uint</td><td><td>hasInstanceVars</td><td>
Type has non-function instance vars (state).
</td>
    <tr><td class="param">uint</td><td><td>hasMeta</td><td>
Type has meta methods.
</td>
    <tr><td class="param">uint</td><td><td>hasScriptFunctions</td><td>
Block has non-native functions requiring namespaces.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_helpers">EjsHelpers</a></td><td><td>helpers</td><td>
Type helper methods.
</td>
    <tr><td class="param">MprList *</td><td><td>implements</td><td>
List of implemented interfaces.
</td>
    <tr><td class="param">uint</td><td><td>initialized</td><td>
Static initializer has run.
</td>
    <tr><td class="param">ushort</td><td><td>instanceSize</td><td>
Size of instances in bytes.
</td>
    <tr><td class="param">uint</td><td><td>isInterface</td><td>
Interface vs class.
</td>
    <tr><td class="param">uint</td><td><td>isPot</td><td>
Instances are based on EjsPot.
</td>
    <tr><td class="param"><a class="ref" href="#group___mpr_mem_1gaacdb6d1a5cec32a0758f636353fff782" external="mpr.dtags">MprManager</a></td><td><td>manager</td><td>
Manager callback.
</td>
    <tr><td class="param">struct EjsModule *</td><td><td>module</td><td>
Module owning the type - stores the constant pool.
</td>
    <tr><td class="param">uint</td><td><td>mutableInstances</td><td>
Instances are mutable.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Optional locking for types that require it.
</td>
    <tr><td class="param">uint</td><td><td>needFixup</td><td>
Slots need fixup.
</td>
    <tr><td class="param">uint</td><td><td>numericIndicies</td><td>
Instances support direct numeric indicies.
</td>
    <tr><td class="param">ushort</td><td><td>numInherited</td><td>
Number of inherited prototype properties.
</td>
    <tr><td class="param">EjsPot *</td><td><td>prototype</td><td>
Prototype for instances when using prototype inheritance (only).
</td>
    <tr><td class="param">EjsName</td><td><td>qname</td><td>
Qualified name of the type. 
Type name and namespace.
</td>
    <tr><td class="param">short</td><td><td>sid</td><td>
Slot index into service-&gt;immutable[].
</td>
    <tr><td class="param">void *</td><td><td>typeData</td><td>
Type specific data.
</td>
    <tr><td class="param">uint</td><td><td>virtualSlots</td><td>
Properties are not stored in slots[].
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19"></a>
<div class="api">
  <div class="prototype">
    int
    ejsBindAccess
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, void *getter, void *setter)
  </div>
  <div class="apiDetail">
<p>Bind a native C functions to method accessors.</p>
    <dl><dt><b>Description</b>:</dt><dd>Bind a native C function to an existing javascript accessor function. Method functions are typically created by compiling a script file of native method definitions into a mod file. When loaded, this mod file will create the method properties. This routine will then bind the specified C function to the method accessor.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Type containing the function property to bind.</td>
    <tr><td class="param">slotNum</td><td>Slot number of the method property.</td>
    <tr><td class="param">getter</td><td>Native C getter function to bind. Set to NULL if no getter.</td>
    <tr><td class="param">setter</td><td>Native C setter function to bind. Set to NULL if no setter.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5"></a>
<div class="api">
  <div class="prototype">
    void
    ejsBindConstructor
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *type, void *constructor)
  </div>
  <div class="apiDetail">
<p>Bind a constructor.</p>
    <dl><dt><b>Description</b>:</dt><dd>Bind a native C function to a type as a constructor function.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Type to modify.</td>
    <tr><td class="param">constructor</td><td>Native C constructor function to bind.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5"></a>
<div class="api">
  <div class="prototype">
    int
    ejsBindFunction
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, void *fun)
  </div>
  <div class="apiDetail">
<p>Bind a native C function to a function property.</p>
    <dl><dt><b>Description</b>:</dt><dd>Bind a native C function to an existing javascript function. Functions are typically created by compiling a script file of native function definitions into a mod file. When loaded, this mod file will create the function properties. This routine will then bind the specified C function to the function property.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object containing the function property to bind.</td>
    <tr><td class="param">slotNum</td><td>Slot number of the method property.</td>
    <tr><td class="param">fun</td><td>Native C function to bind.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d"></a>
<div class="api">
  <div class="prototype">
    int
    ejsBindMethod
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, int slotNum, void *fn)
  </div>
  <div class="apiDetail">
<p>Bind a native C function to a method property.</p>
    <dl><dt><b>Description</b>:</dt><dd>Bind a native C function to an existing javascript method. Method functions are typically created by compiling a script file of native method definitions into a mod file. When loaded, this mod file will create the method properties. This routine will then bind the specified C function to the method property.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Type containing the function property to bind.</td>
    <tr><td class="param">slotNum</td><td>Slot number of the method property.</td>
    <tr><td class="param">fn</td><td>Native C function to bind.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga6044774cef4008019a48116e586f6b69"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ejsCast
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, void *name)
  </div>
  <div class="apiDetail">
<p>Cast the object to the given type name.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    <tr><td class="param">name</td><td>Textual name of the type (Not void*). For example: ejsCast(ejs, obj, String).</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Casted object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_type" class="ref">EjsType</a> *
    ejsConfigureType
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *type, struct EjsModule *up, <a href="#group___ejs_type" class="ref">EjsType</a> *baseType, int numTypeProp, int numInstanceProp, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes)
  </div>
  <div class="apiDetail">
<p>Configure a type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Called by loader to configure a native type based on the mod file information.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Type to configure.</td>
    <tr><td class="param">up</td><td>Reference to a module that will own the type. Set to null if not owned by any module.</td>
    <tr><td class="param">baseType</td><td>Base type for this type.</td>
    <tr><td class="param">numTypeProp</td><td>Number of type (class) properties for the type. These include static properties and methods.</td>
    <tr><td class="param">numInstanceProp</td><td>Number of instance properties.</td>
    <tr><td class="param">attributes</td><td>Attribute mask to modify how the type is initialized.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The configured type.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_type" class="ref">EjsType</a> *
    ejsCreateArchetype
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, struct EjsFunction *fun, <a href="#group___ejs_pot" class="ref">EjsPot</a> *prototype)
  </div>
  <div class="apiDetail">
<p>Create an Archetype.</p>
    <dl><dt><b>Description</b>:</dt><dd>Archetypes are used when functions are used as constructors.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">fun</td><td>Function object to use as a constructor.</td>
    <tr><td class="param">prototype</td><td>Prototype object. If set to null, a new prototype is created.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new type object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_type" class="ref">EjsType</a> *
    ejsCreateCoreType
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname, int size, int slotNum, int numTypeProp, void *manager, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes)
  </div>
  <div class="apiDetail">
<p>Create a core type object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a new type object.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">qname</td><td>Qualified name to give the type. This name is referenced by the type and must be persistent. This name is not used to define the type as a global property.</td>
    <tr><td class="param">size</td><td>Size in bytes to reserve for the type.</td>
    <tr><td class="param">slotNum</td><td>Global slot number property index.</td>
    <tr><td class="param">numTypeProp</td><td>Number of type (class) properties for the type. These include static properties and methods.</td>
    <tr><td class="param">manager</td><td>MPR manager routine for garbage collection.</td>
    <tr><td class="param">attributes</td><td>Attribute mask to modify how the type is initialized.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The created type.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_obj" class="ref">EjsObj</a> *
    ejsCreatePrototype
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *type, int numProp)
  </div>
  <div class="apiDetail">
<p>Create a type prototype.</p>
    <dl><dt><b>Description</b>:</dt><dd>This creates a prototype object from which instances are crafted.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Type object.</td>
    <tr><td class="param">numProp</td><td>Number of instance properties in the prototype.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The prototype object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_type" class="ref">EjsType</a> *
    ejsCreateType
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> name, struct EjsModule *up, <a href="#group___ejs_type" class="ref">EjsType</a> *baseType, <a href="#group___ejs_pot" class="ref">EjsPot</a> *prototype, int slotNum, int numTypeProp, int numInstanceProp, int size, void *manager, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes)
  </div>
  <div class="apiDetail">
<p>Create a new type object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a new type object.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">name</td><td>Qualified name to give the type. This name is referenced by the type and must be persistent. This name is not used to define the type as a global property.</td>
    <tr><td class="param">up</td><td>Reference to a module that will own the type. Set to null if not owned by any module.</td>
    <tr><td class="param">baseType</td><td>Base type for this type.</td>
    <tr><td class="param">prototype</td><td>Prototype object instance properties of this type.</td>
    <tr><td class="param">size</td><td>Size of instances. This is the size in bytes of an instance object.</td>
    <tr><td class="param">slotNum</td><td>Unique type ID for core types. For non-core types, set to -1.</td>
    <tr><td class="param">numTypeProp</td><td>Number of type (class) properties for the type. These include static properties and methods.</td>
    <tr><td class="param">numInstanceProp</td><td>Number of instance properties.</td>
    <tr><td class="param">manager</td><td>MPR manager routine for garbage collection.</td>
    <tr><td class="param">attributes</td><td>Attribute mask to modify how the type is initialized.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The created type.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce"></a>
<div class="api">
  <div class="prototype">
    int
    ejsDefineGlobalFunction
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *name, <a href="#group___ejs_function_1ga154ff59b6e236d13c28765946349c884" class="ref">EjsProc</a> fn)
  </div>
  <div class="apiDetail">
<p>Define a global function.</p>
    <dl><dt><b>Description</b>:</dt><dd>Define a global public function and bind it to the C native function. This is a simple one liner to define a public global function. The more typical paradigm to define functions is to create a script file of native method definitions and and compile it. This results in a mod file that can be loaded which will create the function/method definitions. Then use <a class="ref" href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d">ejsBindMethod</a> to associate a C function with a property.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">name</td><td>Function name.</td>
    <tr><td class="param">fn</td><td>C function that implements the function.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5"></a>
<div class="api">
  <div class="prototype">
    int
    ejsDefineInstanceProperty
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *type, int slotNum, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#group___ejs_type" class="ref">EjsType</a> *propType, int attributes, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *value)
  </div>
  <div class="apiDetail">
<p>Define an instance property.</p>
    <dl><dt><b>Description</b>:</dt><dd>Define an instance property on a type. This routine should not normally be called manually. Instance properties are best created by creating a script file of native property definitions and then loading the resultant mod file.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">type</td><td>Type in which to create the instance property.</td>
    <tr><td class="param">slotNum</td><td>Instance slot number in the type that will hold the property. Set to -1 to allocate the next available free slot.</td>
    <tr><td class="param">name</td><td>Qualified name for the property including namespace and name.</td>
    <tr><td class="param">propType</td><td>Type of the instance property.</td>
    <tr><td class="param">attributes</td><td>Integer mask of access attributes.</td>
    <tr><td class="param">value</td><td>Initial value of the instance property.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The slot number used for the property.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gaf99eb55efe267646184e8d86681ed920"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_type" class="ref">EjsType</a> *
    ejsFinalizeCoreType
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname)
  </div>
  <div class="apiDetail">
<p>Finalize a core type.</p>
    <dl><dt><b>Description</b>:</dt><dd>This sets the configured state for the type.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">qname</td><td>Qualified name of the type.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The finalized type.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga0840b30591223888dd85303414e0ff2d"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_type" class="ref">EjsType</a> *
    ejsFinalizeScriptType
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname, int size, void *manager, <a href="osdep.html#osdep_8h_1a168afaa12b2c08e4ae1d11ea4c296e64" class="ref">int64</a> attributes)
  </div>
  <div class="apiDetail">
<p>Finalize a script type.</p>
    <dl><dt><b>Description</b>:</dt><dd>This finalizes the type and sets the configured state for the type.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">qname</td><td>Qualified name of the type.</td>
    <tr><td class="param">size</td><td>Instance size of the type.</td>
    <tr><td class="param">manager</td><td>Manager function for garbage collection.</td>
    <tr><td class="param">attributes</td><td>Type attributes.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The configured type.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_pot" class="ref">EjsPot</a> *
    ejsGetPrototype
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Get the prototype object for an object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Prototype object for the given object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_type" class="ref">EjsType</a> *
    ejsGetType
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int slotNum)
  </div>
  <div class="apiDetail">
<p>Get a type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the type installed at the given slot number. All core-types are installed a specific global slots. When Ejscript is built, these slots are converted into C program defines of the form: ES_TYPE where TYPE is the name of the type concerned. For example, you can get the String type object via:.</dd></dl>
    <dl><dt></dt><dd>EjsGetType(ejs, ES_String).</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">slotNum</td><td>Slot number of the type to retrieve. Use ES_TYPE defines.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A type object if successful or zero if the type could not be found.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_type" class="ref">EjsType</a> *
    ejsGetTypeByName
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_name" class="ref">EjsName</a> qname)
  </div>
  <div class="apiDetail">
<p>Get a type given its name.</p>
    <dl><dt><b>Description</b>:</dt><dd>Types are stored in the global object. This routine looks in the global object for the type property.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">qname</td><td>Qualified name of the type.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The type object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gaafdf35287cba548cc03605f1617694c5"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsGetTypeName
(struct Ejs *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Get the type name of an object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The string type name of the object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gad5fcfe6a44792a9fd457d631242bc4ea"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsGetTypeOf
(struct Ejs *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>TypeOf operator.</p>
    <dl><dt><b>Description</b>:</dt><dd>This finalizes the type and sets the configured state for the type.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String type name for the &quot;typeOf&quot; operator.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIs
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj, void *name)
  </div>
  <div class="apiDetail">
<p>Test the type of an object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    <tr><td class="param">name</td><td>Textual name of the type (Not void*). For example: ejsIs(ejs, obj, Number).</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the object is of the tested type.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsA
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *target, <a href="#group___ejs_type" class="ref">EjsType</a> *type)
  </div>
  <div class="apiDetail">
<p>Test if an variable is an instance of a given type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Perform an &quot;is a&quot; test. This tests if a variable is a direct instance or subclass of a given base type.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">target</td><td>Target object to test.</td>
    <tr><td class="param">type</td><td>Type to compare with the target.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if target is an instance of &quot;type&quot; or an instance of a subclass of &quot;type&quot;.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsDefined
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Test the object is not null and not undefined.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to examine.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the object is of a defined type.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga2f1e87fc744789876dbac6f8a01383f1"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsPrototype
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Determine if a variable is a prototype object.</p>
Types store the template for instance properties in a prototype object
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the variable is a prototype object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsType
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Determine if a variable is an type.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the variable is a type.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsTypeSubType
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_type" class="ref">EjsType</a> *target, <a href="#group___ejs_type" class="ref">EjsType</a> *baseType)
  </div>
  <div class="apiDetail">
<p>Test if a type is a derived type of a given base type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Test if a type subclasses a base type.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">target</td><td>Target type to test.</td>
    <tr><td class="param">baseType</td><td>Base class to see if the target subclasses it.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if target is a &quot;baseType&quot; or a subclass of &quot;baseType&quot;.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a></dd></dl>
  </div>
</div>
<a name="group___ejs_type_1gab84a2fc08c8fe8a222ed24ff84f6e8b9"></a>
<div class="api">
  <div class="prototype">
    int
    ejsRunProgram
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *className, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methodName)
  </div>
  <div class="apiDetail">
<p>Run a program.</p>
    <dl><dt><b>Description</b>:</dt><dd>Lookup the className and run the designated method. If methodName is null, then &quot;main&quot; is run. The method should be a static method of the class.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter instance returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">className</td><td>Class name to search for methodName.</td>
    <tr><td class="param">methodName</td><td>Method to run. If set to NULL, then search for &quot;main&quot;.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_type" class="ref">EjsType</a>, <a href="#group___ejs_type_1ga0923eb604d83e90cb978cf1afc8d7c19" class="ref">ejsBindAccess</a>, <a href="#group___ejs_type_1ga1fbb37b8cd620690300e79d4287a9bf5" class="ref">ejsBindConstructor</a>, <a href="#group___ejs_type_1gae3fdfd951bab3f60fd44b3159ab3669d" class="ref">ejsBindMethod</a>, <a href="#group___ejs_type_1ga6044774cef4008019a48116e586f6b69" class="ref">ejsCast</a>, <a href="#group___ejs_type_1ga5b2e89d60086f10116f1b0f8c4214c62" class="ref">ejsConfigureType</a>, <a href="#group___ejs_type_1gab6cd4d40c0bb6f23b47d7d6a00963c51" class="ref">ejsCreateArchetype</a>, <a href="#group___ejs_type_1gafd299306ea4a293b211f1c4ad3fe2bfd" class="ref">ejsCreateCoreType</a>, <a href="#group___ejs_type_1gae81e1e66c98088b4e2f64dc9b4429c8e" class="ref">ejsCreatePrototype</a>, <a href="#group___ejs_type_1ga993c24f92f1da5b0f3140d1561fc408e" class="ref">ejsCreateType</a>, <a href="#group___ejs_type_1ga85ea30ec19e970f8c36374da77fcb3ce" class="ref">ejsDefineGlobalFunction</a>, <a href="#group___ejs_type_1ga7db7fe9549a45074b1cd21d3a34942a5" class="ref">ejsDefineInstanceProperty</a>, <a href="#group___ejs_type_1gaf99eb55efe267646184e8d86681ed920" class="ref">ejsFinalizeCoreType</a>, <a href="#group___ejs_type_1ga0840b30591223888dd85303414e0ff2d" class="ref">ejsFinalizeScriptType</a>, <a href="#group___ejs_type_1gaf52df85c9a82b20346d92c1de0a95371" class="ref">ejsGetPrototype</a>, <a href="#group___ejs_type_1gaf41edbabce385e7cb73ed6526aa2cf22" class="ref">ejsGetType</a>, <a href="#group___ejs_type_1gacd5d078d0fca337295cd898a1ad3f2be" class="ref">ejsGetTypeByName</a>, <a href="#group___ejs_type_1ga1600b777743e90dca32ea8b2541c7763" class="ref">ejsIs</a>, <a href="#group___ejs_type_1ga9ca081fd373eaca45ddcd175bb512ddd" class="ref">ejsIsA</a>, <a href="#group___ejs_type_1gafa6d80b3cc4887289d331cde7975f890" class="ref">ejsIsDefined</a>, <a href="#group___ejs_type_1gab7d43b404ca6cfb96ea7c17bdbfd9ae1" class="ref">ejsIsType</a>, <a href="#group___ejs_type_1ga1c07c5c5908c4a6db4b35f765efa31ca" class="ref">ejsIsTypeSubType</a></dd></dl>
  </div>
</div>
<h1>EjsUri</h1>
<a name="group___ejs_uri"></a>
<div class="api">
  <div class="prototype">EjsUri</div>
  <div class="apiDetail">
<p>Uri class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Uri class provides file path name services.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_uri_1gae6752aaa05bbde3fbd49c8426b131a70" class="ref">ejsCreateUri</a>, <a href="#group___ejs_uri_1ga70990d61d8fc6282714f2bfa09223fe7" class="ref">ejsCreateUriFromAsc</a>, <a href="#group___ejs_uri_1gaeb2760117ebd7fb8f740bb75fd7ec443" class="ref">ejsCreateUriFromParts</a>, <a href="#group___ejs_uri_1gae9febc6fc7e1e4040866f4e6c0e524c3" class="ref">ejsToUri</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">HttpUri *</td><td><td>uri</td><td>
Decoded URI.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_uri_1gae6752aaa05bbde3fbd49c8426b131a70"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_uri" class="ref">EjsUri</a> *
    ejsCreateUri
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_string" class="ref">EjsString</a> *uri)
  </div>
  <div class="apiDetail">
<p>Create a Uri object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a URI object associated with the given URI string.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">uri</td><td>Uri string to parse.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new Uri object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_uri_1ga70990d61d8fc6282714f2bfa09223fe7" class="ref">ejsCreateUriFromAsc</a>, <a href="#group___ejs_uri_1gaeb2760117ebd7fb8f740bb75fd7ec443" class="ref">ejsCreateUriFromParts</a>, <a href="#group___ejs_uri_1gae9febc6fc7e1e4040866f4e6c0e524c3" class="ref">ejsToUri</a></dd></dl>
  </div>
</div>
<a name="group___ejs_uri_1ga70990d61d8fc6282714f2bfa09223fe7"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_uri" class="ref">EjsUri</a> *
    ejsCreateUriFromAsc
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)
  </div>
  <div class="apiDetail">
<p>Create a URI from an ascii path.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">uri</td><td>URI Ascii string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new URI object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_uri_1gae6752aaa05bbde3fbd49c8426b131a70" class="ref">ejsCreateUri</a>, <a href="#group___ejs_uri_1gaeb2760117ebd7fb8f740bb75fd7ec443" class="ref">ejsCreateUriFromParts</a>, <a href="#group___ejs_uri_1gae9febc6fc7e1e4040866f4e6c0e524c3" class="ref">ejsToUri</a></dd></dl>
  </div>
</div>
<a name="group___ejs_uri_1gaeb2760117ebd7fb8f740bb75fd7ec443"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_uri" class="ref">EjsUri</a> *
    ejsCreateUriFromParts
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *scheme, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host, int port, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *query, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *reference, int flags)
  </div>
  <div class="apiDetail">
    <dl><dt><b>Description</b>:</dt><dd>This call constructs a URI from the given parts. Various URI parts can be omitted by setting to null. The URI path is the only mandatory parameter.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">scheme</td><td>The URI scheme. This is typically &quot;http&quot; or &quot;https&quot;.</td>
    <tr><td class="param">host</td><td>The URI host name portion. This can be a textual host and domain name or it can be an IP address.</td>
    <tr><td class="param">port</td><td>The URI port number. Set to zero to accept the default value for the selected scheme.</td>
    <tr><td class="param">path</td><td>The URI path to the requested document.</td>
    <tr><td class="param">reference</td><td>URI reference with an HTML document. This is the URI component after the &quot;#&quot; in the URI path.</td>
    <tr><td class="param">query</td><td>URI query component. This is the URI component after the &quot;?&quot; in the URI.</td>
    <tr><td class="param">flags</td><td>Set to HTTP_COMPLETE_URI to complete the URI by supplying missing URI parts with default values.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new URI.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_uri_1gae6752aaa05bbde3fbd49c8426b131a70" class="ref">ejsCreateUri</a>, <a href="#group___ejs_uri_1ga70990d61d8fc6282714f2bfa09223fe7" class="ref">ejsCreateUriFromAsc</a>, <a href="#group___ejs_uri_1gae9febc6fc7e1e4040866f4e6c0e524c3" class="ref">ejsToUri</a></dd></dl>
  </div>
</div>
<a name="group___ejs_uri_1gae9febc6fc7e1e4040866f4e6c0e524c3"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_uri" class="ref">EjsUri</a> *
    ejsToUri
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Convert an object to a URI.</p>
    <dl><dt><b>Description</b>:</dt><dd>The object is first converted to a String and then to a URI.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Any object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new URI object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_file" class="ref">EjsFile</a>, <a href="#group___ejs_uri_1gae6752aaa05bbde3fbd49c8426b131a70" class="ref">ejsCreateUri</a>, <a href="#group___ejs_uri_1ga70990d61d8fc6282714f2bfa09223fe7" class="ref">ejsCreateUriFromAsc</a>, <a href="#group___ejs_uri_1gaeb2760117ebd7fb8f740bb75fd7ec443" class="ref">ejsCreateUriFromParts</a></dd></dl>
  </div>
</div>
<h1>EjsVoid</h1>
<a name="group___ejs_void"></a>
<div class="api">
  <div class="prototype">EjsVoid</div>
  <div class="apiDetail">
<p>Void class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Void class provides the base class for the singleton &quot;undefined&quot; instance. This instance is stored in ejs-&gt;undefinedValue.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_void_1ga66be69faabddaa5aa401e0b1037cadd4" class="ref">ejsCreateUndefined</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_void_1ga66be69faabddaa5aa401e0b1037cadd4"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_void" class="ref">EjsVoid</a> *
    ejsCreateUndefined
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Create the undefined object.</p>
    <dl><dt><b>Description</b>:</dt><dd>There is one undefined object in the system.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The undefined object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_void" class="ref">EjsVoid</a></dd></dl>
  </div>
</div>
<h1>EjsWebSocket</h1>
<a name="group___ejs_web_socket"></a>
<div class="api">
  <div class="prototype">EjsWebSocket</div>
  <div class="apiDetail">
<p>WebSocket Class.</p>
    <dl><dt><b>Description</b>:</dt><dd>Client side WebSocket support.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_web_socket_1ga7b78145c86d4db2408ac2c990a3d3e29" class="ref">ejsCreateWebSocket</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">char *</td><td><td>certFile</td><td>
SSL certificate file.
</td>
    <tr><td class="param">int</td><td><td>closed</td><td>
Http is closed and &quot;close&quot; event has been issued.
</td>
    <tr><td class="param">HttpConn *</td><td><td>conn</td><td>
Underlying HttpConn object.
</td>
    <tr><td class="param">Ejs *</td><td><td>ejs</td><td>
Interp reference.
</td>
    <tr><td class="param">EjsObj *</td><td><td>emitter</td><td>
Event emitter.
</td>
    <tr><td class="param">int</td><td><td>error</td><td>
Http errored and &quot;error&quot; event has been issued.
</td>
    <tr><td class="param">int</td><td><td>frames</td><td>
Preserve frames.
</td>
    <tr><td class="param">EjsPot</td><td><td>pot</td><td>
Base pot.
</td>
    <tr><td class="param">char *</td><td><td>protocol</td><td>
Protocol selected by the server.
</td>
    <tr><td class="param">char *</td><td><td>protocols</td><td>
Set of supported protocols.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_ssl" external="mpr.dtags">MprSsl</a> *</td><td><td>ssl</td><td>
SSL configuration.
</td>
    <tr><td class="param">char *</td><td><td>uri</td><td>
Target URI.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_web_socket_1ga7b78145c86d4db2408ac2c990a3d3e29"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_web_socket" class="ref">EjsWebSocket</a> *
    ejsCreateWebSocket
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Create a new WebSocket object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new WebSocket object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_web_socket" class="ref">EjsWebSocket</a></dd></dl>
  </div>
</div>
<h1>EjsWorker</h1>
<a name="group___ejs_worker"></a>
<div class="api">
  <div class="prototype">EjsWorker</div>
  <div class="apiDetail">
<p>Worker Class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Worker class provides the ability to create new interpreters in dedicated threads.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj" class="ref">EjsObj</a>, <a href="#group___ejs_worker_1ga6fe839d13cc75c1b934ea042241cf5bf" class="ref">ejsCreateWorker</a>, <a href="#group___ejs_worker_1gab6fd625a18aadafdb271936e5a1f0084" class="ref">ejsRemoveWorkers</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>complete</td><td>
Worker has completed its work.
</td>
    <tr><td class="param">Ejs *</td><td><td>ejs</td><td>
Interpreter.
</td>
    <tr><td class="param">EjsAny *</td><td><td>event</td><td>
Current event object.
</td>
    <tr><td class="param">int</td><td><td>gotMessage</td><td>
Worker has received a message.
</td>
    <tr><td class="param">int</td><td><td>inside</td><td>
Running inside the worker.
</td>
    <tr><td class="param">char *</td><td><td>name</td><td>
Optional worker name.
</td>
    <tr><td class="param">struct EjsWorker *</td><td><td>pair</td><td>
Corresponding worker object in other thread.
</td>
    <tr><td class="param">EjsPot</td><td><td>pot</td><td>
Property storage.
</td>
    <tr><td class="param">char *</td><td><td>scriptFile</td><td>
Script or module to run.
</td>
    <tr><td class="param">EjsString *</td><td><td>scriptLiteral</td><td>
Literal script string to run.
</td>
    <tr><td class="param">int</td><td><td>state</td><td>
Worker state.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_worker_1ga6fe839d13cc75c1b934ea042241cf5bf"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_worker" class="ref">EjsWorker</a> *
    ejsCreateWorker
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Create a worker.</p>
    <dl><dt><b>Description</b>:</dt><dd>This creates a bare worker object.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new worker object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj" class="ref">EjsObj</a>, <a href="#group___ejs_worker_1gab6fd625a18aadafdb271936e5a1f0084" class="ref">ejsRemoveWorkers</a></dd></dl>
  </div>
</div>
<a name="group___ejs_worker_1gab6fd625a18aadafdb271936e5a1f0084"></a>
<div class="api">
  <div class="prototype">
    void
    ejsRemoveWorkers
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Remove workers before exiting.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_obj" class="ref">EjsObj</a>, <a href="#group___ejs_worker_1ga6fe839d13cc75c1b934ea042241cf5bf" class="ref">ejsCreateWorker</a></dd></dl>
  </div>
</div>
<h1>EjsXML</h1>
<a name="group___ejs_x_m_l"></a>
<div class="api">
  <div class="prototype">EjsXML</div>
  <div class="apiDetail">
<p>XML and XMLList class.</p>
    <dl><dt><b>Description</b>:</dt><dd>The XML class and API is based on ECMA-357 <ndash/> ECMAScript for XML (E4X). The XML class is a core class in the E4X specification; it provides the ability to load, parse and save XML documents.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">MprList *</td><td><td>attributes</td><td>
Node attributes.
</td>
    <tr><td class="param">MprList *</td><td><td>elements</td><td>
List elements or child nodes.
</td>
    <tr><td class="param">int</td><td><td>kind</td><td>
Kind of XML node.
</td>
    <tr><td class="param">MprList *</td><td><td>namespaces</td><td>
List of namespaces as Namespace objects.
</td>
    <tr><td class="param">EjsObj</td><td><td>obj</td><td>
Base object.
</td>
    <tr><td class="param">struct EjsXML *</td><td><td>parent</td><td>
Parent node reference (XML or XMLList).
</td>
    <tr><td class="param">EjsName</td><td><td>qname</td><td>
XML node name (e.g. 
tagName).
</td>
    <tr><td class="param">struct EjsXML *</td><td><td>targetObject</td><td>
XML/XMLList object modified when items inserted into an empty list.
</td>
    <tr><td class="param">EjsName</td><td><td>targetProperty</td><td>
XML property modified when items inserted into an empty list.
</td>
    <tr><td class="param">EjsString *</td><td><td>value</td><td>
Value of text|attribute|comment|pi.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d"></a>
<div class="api">
  <div class="prototype">
    int
    ejsAppendAttributeToXML
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *parent, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *attribute)
  </div>
  <div class="apiDetail">
<p>Append an attribute.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">parent</td><td>Xml node to receive the attribute.</td>
    <tr><td class="param">attribute</td><td>Attribute node to append.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new XML object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *
    ejsAppendToXML
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *dest, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *node)
  </div>
  <div class="apiDetail">
<p>Append a node.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">dest</td><td>Node to receive the appended node.</td>
    <tr><td class="param">node</td><td>Node to append to dest.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The dest node.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *
    ejsCreateXML
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, int kind, <a href="#group___ejs_name" class="ref">EjsName</a> name, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *parent, <a href="#group___ejs_string" class="ref">EjsString</a> *value)
  </div>
  <div class="apiDetail">
<p>Create an XML node object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">kind</td><td>XML node kind. Set to EJS_XML_LIST, EJS_XML_ELEMENT, EJS_XML_ATTRIBUTE, EJS_XML_TEXT, EJS_XML_COMMENT or EJS_XML_PROCESSING.</td>
    <tr><td class="param">name</td><td>Node name. Only the EjsName.name field is used.</td>
    <tr><td class="param">parent</td><td>Parent node.</td>
    <tr><td class="param">value</td><td>Node value.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new XML object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *
    ejsCreateXMLList
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *targetObject, <a href="#group___ejs_name" class="ref">EjsName</a> targetProperty)
  </div>
  <div class="apiDetail">
<p>Create an XML list object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">targetObject</td><td>Object to set as the target object for the list.</td>
    <tr><td class="param">targetProperty</td><td>Property to set as the target property for the list.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new XML list object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *
    ejsGetXMLDescendants
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, <a href="#group___ejs_name" class="ref">EjsName</a> qname)
  </div>
  <div class="apiDetail">
<p>Get the descendants of an XML node that match the given name.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">xml</td><td>Node to examine.</td>
    <tr><td class="param">qname</td><td>Name to search for.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An XML node with elements for the descendants.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b"></a>
<div class="api">
  <div class="prototype">
    <a href="osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    ejsIsXML
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *obj)
  </div>
  <div class="apiDetail">
<p>Determine if a variable is an XML object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to test.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the variable is an XML or XMLList object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea"></a>
<div class="api">
  <div class="prototype">
    void
    ejsLoadXMLAsc
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, <a href="osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *xmlString)
  </div>
  <div class="apiDetail">
<p>Load an XML document from an Ascii string.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">xml</td><td>XML node to hold the parsed XML data.</td>
    <tr><td class="param">xmlString</td><td>String containing XML data to parse.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A new XML object.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96"></a>
<div class="api">
  <div class="prototype">
    void
    ejsLoadXMLString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, <a href="#group___ejs_string" class="ref">EjsString</a> *xmlString)
  </div>
  <div class="apiDetail">
<p>Load an XML document.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">xml</td><td>XML node to hold the parsed XML data.</td>
    <tr><td class="param">xmlString</td><td>String containing XML data to parse.</td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1ga80d04a5a44c4ce6d2150dba5fefa1d28"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *
    ejsSetXMLElement
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, int index, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *node)
  </div>
  <div class="apiDetail">
<p>Set an indexed element to a value.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">xml</td><td>XML node to receive the appended node.</td>
    <tr><td class="param">index</td><td>Element index at which to set the node.</td>
    <tr><td class="param">node</td><td>Node to insert.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The xml node.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a>, <a href="#group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973" class="ref">ejsXMLToBuf</a></dd></dl>
  </div>
</div>
<a name="group___ejs_x_m_l_1ga585079d3c5054298dc0d6a2bc5aea973"></a>
<div class="api">
  <div class="prototype">
    int
    ejsXMLToBuf
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="mpr.html#group___mpr_buf" class="ref">MprBuf</a> *buf, <a href="#group___ejs_x_m_l" class="ref">EjsXML</a> *xml, int indentLevel)
  </div>
  <div class="apiDetail">
<p>Convert an xml node to string representation in a buffer.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">buf</td><td>Buffer to hold the output string.</td>
    <tr><td class="param">xml</td><td>Node to examine.</td>
    <tr><td class="param">indentLevel</td><td>Maximum indent level.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_x_m_l" class="ref">EjsXML</a>, <a href="#group___ejs_x_m_l_1ga432be67ad5f8a5b68b19b95b1346693d" class="ref">ejsAppendAttributeToXML</a>, <a href="#group___ejs_x_m_l_1ga30a98eec819837236f296ff8e9fe8560" class="ref">ejsAppendToXML</a>, <a href="#group___ejs_x_m_l_1ga0fe5fac1a54834bb2f00bcdc955c4aa2" class="ref">ejsCreateXML</a>, <a href="#group___ejs_x_m_l_1ga06ebe56f1b1705be503969940047a7c5" class="ref">ejsCreateXMLList</a>, <a href="#group___ejs_x_m_l_1ga93c3341f3b56dd28b760b3b3e88a4f2c" class="ref">ejsGetXMLDescendants</a>, <a href="#group___ejs_x_m_l_1ga6d2d73f2c1b4a483838bca1343f7ab5b" class="ref">ejsIsXML</a>, <a href="#group___ejs_x_m_l_1ga3d1eae3555c74b08fa0ea38fbaac4cea" class="ref">ejsLoadXMLAsc</a>, <a href="#group___ejs_x_m_l_1gaa12c4363491d3ec4c889db2caff2ec96" class="ref">ejsLoadXMLString</a></dd></dl>
  </div>
</div>
<h2>Functions</h2>
<a name="ejscript_8h_1a12311560719257ba7f60b41067335040"></a>
<div class="api">
  <div class="prototype">
    int
    EJS_MAKE_VERSION
(int maj, int min, int patch)
  </div>
  <div class="apiDetail">
<p>Make an integer version number.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">maj</td><td>Major version number.</td>
    <tr><td class="param">min</td><td>Minor version number.</td>
    <tr><td class="param">patch</td><td>Patch version number.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An integer version number combining major, minor and patch version numbers.</dd></dl>
  </div>
</div>
<a name="ejscript_8h_1a848b4c9eadc852cb61483df8dee91d60"></a>
<div class="api">
  <div class="prototype">
    void
    ejsDestroyVM
(<a href="#group___ejs" class="ref">Ejs</a> *ejs)
  </div>
  <div class="apiDetail">
<p>Destroy an interpreter.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Interpreter to destroy.</td>
    </table></dd></dl>
  </div>
</div>
<a name="ejscript_8h_1a587b962cb08be644eaf6b2c70dd37fd6"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_array" class="ref">EjsArray</a> *
    ejsGetPathFiles
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_path" class="ref">EjsPath</a> *path, int argc, <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> **argv)
  </div>
  <div class="apiDetail">
<p>Get files below a path.</p>
    <dl><dt><b>Description</b>:</dt><dd>Expand wild cards in a path. Function used to implement Path.files().</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">path</td><td>Path to use as the base.</td>
    <tr><td class="param">argc</td><td>Count of args (set to 1).</td>
    <tr><td class="param">argv</td><td>Args array. (Set to an array with a single element).</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Array of matching paths.</dd></dl>
  </div>
</div>
<a name="ejscript_8h_1a5414fa10fe236f44af8d77b5e7797ba2"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_string" class="ref">EjsString</a> *
    ejsToLiteralString
(<a href="#group___ejs" class="ref">Ejs</a> *ejs, <a href="#group___ejs_obj" class="ref">EjsObj</a> *obj)
  </div>
  <div class="apiDetail">
<p>Convert a string to a literal string style representation.</p>
    <dl><dt><b>Description</b>:</dt><dd>The object is converted to a string and then is wrapped with quotes. Embedded quotes and backquotes are backquoted.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">obj</td><td>Object to convert.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A string representation of the object.</dd></dl>
  </div>
</div>
<a name="ejscript_8h_1a4f3584893b20886cb9170953d333c60f"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___ejs_type" class="ref">EjsType</a> *
    EST
(void *name)
  </div>
  <div class="apiDetail">
<p>Special type.</p>
  </div>
</div>
<a name="ejscript_8h_1aa3c96f914f195c36649bf0bb858bfb70"></a>
<div class="api">
  <div class="prototype">
    <a href="#ejscript_8h_1a6b33ea7ff8884b09e08ff69d698eb4e9" class="ref">EjsAny</a> *
    ESV
(void *name)
  </div>
  <div class="apiDetail">
<p>Get immutable special value.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Literal name.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Special value.</dd></dl>
  </div>
</div>
<h2>Typedefs</h2>
<a name="group___ejs_function_1ga154ff59b6e236d13c28765946349c884"></a>
<div class="api">
  <div class="prototype">
    typedef EjsObj*(* EjsProc)(Ejs *ejs, EjsAny *thisObj, int argc, struct EjsObj **argv).
  </div>
  <div class="apiDetail">
<p>Native Function signature.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is the calling signature for C Functions.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    <tr><td class="param">thisObj</td><td>Reference to the &quot;this&quot; object. (The object containing the method).</td>
    <tr><td class="param">argc</td><td>Number of arguments.</td>
    <tr><td class="param">argv</td><td>Array of arguments.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Returns a result variable or NULL on errors and exceptions.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_function" class="ref">EjsFunction</a>, <a href="#group___ejs_type_1gab82b7d4399c850e420a2c5388c836cb5" class="ref">ejsBindFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga51f9d52aa357e85dff215d853de3675f" class="ref">ejsCloneFunction</a>, <a href="#group___ejs_function_1ga66b17be4ac9a1c3fd798617568f8c340" class="ref">ejsCreateActivation</a>, <a href="#group___ejs_function_1ga7a6c27facb1b996fa170194c7ed5ed8d" class="ref">ejsCreateBareFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga5bf8e2a9af6557492e6ba315d5a3188b" class="ref">ejsCreateFunction</a>, <a href="#group___ejs_function_1ga887cfa2cc87c9e0736bebecbbeeee156" class="ref">ejsInitFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1ga7127ecf0788bd034597366ea9e8eb215" class="ref">ejsIsFunction</a>, <a href="#group___ejs_function_1gafe317233b001bbca1b86cedf96c3b5a7" class="ref">ejsIsInitializer</a>, <a href="#group___ejs_function_1gab8d9707a7fb66beea580dab3f897a65d" class="ref">ejsIsNativeFunction</a>, <a href="#group___ejs_function_1gaef490e640f5b309ffb75596134f40ac0" class="ref">ejsRemoveConstructor</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1gad27776daa4c1446ecf1ea222d8ec5080" class="ref">ejsRunFunction</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga9b6990680a7a2201f9c67aa0f8ec7e16" class="ref">ejsRunFunctionBySlot</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a>, <a href="#group___ejs_function_1ga5a7d2ad5dd3cf09e90d6288ac2ba73fc" class="ref">ejsRunInitializer</a></dd></dl>
  </div>
</div>
<a name="group___ejs_module_1ga550b9b21fc9598fbe012216e1d9745fe"></a>
<div class="api">
  <div class="prototype">
    typedef int(* EjsNativeCallback)(Ejs *ejs).
  </div>
  <div class="apiDetail">
<p>Native module initialization callback.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">ejs</td><td>Ejs reference returned from <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#group___ejs_module_1ga2074536c4ebc6f82689d783ec5cde5bf" class="ref">ejsCreateSearchPath</a>, <a href="#group___ejs_module_1gaa2d1411bda71012cd02f0dfb3be3bf85" class="ref">ejsLoadModule</a>, <a href="#group___ejs_module_1ga7f5fd9032996838e6093e47ff73cd7e0" class="ref">ejsLoadModules</a>, <a href="#group___ejs_module_1gaf5832f71a4c2ed1ff07bc81f2ddc000a" class="ref">ejsSearchForModule</a>, <a href="#group___ejs_module_1gace4f9f6ccb7c748e5a4a03f4378eca7d" class="ref">ejsSetSearchPath</a></dd></dl>
  </div>
</div>
<a name="struct_ejs_code"></a>
<div class="api">
  <div class="prototype">EjsCode</div>
  <div class="apiDetail">
<p>Byte code.</p>
    <dl><dt><b>Description</b>:</dt><dd>This structure describes a sequence of byte code for a function. It also defines a set of execption handlers pertaining to this byte code.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">uchar</td><td><td>byteCode[ARRAY_FLEX]</td><td>
Byte code.
</td>
    <tr><td class="param">int</td><td><td>codeLen</td><td>
Byte code length.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_debug">EjsDebug</a> *</td><td><td>debug</td><td>
Source code debug information.
</td>
    <tr><td class="param">int</td><td><td>debugOffset</td><td>
Offset in mod file for debug info.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_ex">EjsEx</a> **</td><td><td>handlers</td><td>
Exception handlers.
</td>
    <tr><td class="param">int</td><td><td>magic</td><td>
Debug magic id.
</td>
    <tr><td class="param">struct EjsModule *</td><td><td>module</td><td>
Module owning this function.
</td>
    <tr><td class="param">int</td><td><td>numHandlers</td><td>
Number of exception handlers.
</td>
    <tr><td class="param">int</td><td><td>sizeHandlers</td><td>
Size of handlers array.
</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
  </div>
</div>
<a name="struct_ejs_constants"></a>
<div class="api">
  <div class="prototype">EjsConstants</div>
  <div class="apiDetail">
<p>Constant pool for module files.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsString **</td><td><td>index</td><td>
Interned string index.
</td>
    <tr><td class="param">int</td><td><td>indexCount</td><td>
Number of constants used in index.
</td>
    <tr><td class="param">int</td><td><td>indexSize</td><td>
Size of index in elements.
</td>
    <tr><td class="param">int</td><td><td>locked</td><td>
No more additions allowed.
</td>
    <tr><td class="param">char *</td><td><td>pool</td><td>
Constant pool string data.
</td>
    <tr><td class="param">ssize</td><td><td>poolLength</td><td>
Length of used bytes in constant pool.
</td>
    <tr><td class="param">ssize</td><td><td>poolSize</td><td>
Size of constant pool storage in bytes.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>table</td><td>
Hash table for fast lookup when compiling.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="struct_ejs_debug"></a>
<div class="api">
  <div class="prototype">EjsDebug</div>
  <div class="apiDetail">
<p>Debug record for module files.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param"><a class="ref" href="#struct_ejs_line">EjsLine</a></td><td><td>lines[ARRAY_FLEX]</td><td>
Debug lines.
</td>
    <tr><td class="param">int</td><td><td>numLines</td><td>
Number of entries in lines[].
</td>
    <tr><td class="param">ssize</td><td><td>size</td><td>
Size of lines[] in elements.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="struct_ejs_ex"></a>
<div class="api">
  <div class="prototype">EjsEx</div>
  <div class="apiDetail">
<p>Exception Handler Record.</p>
    <dl><dt><b>Description</b>:</dt><dd>Each exception handler has an exception handler record.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">struct EjsType *</td><td><td>catchType</td><td>
Type of error to catch.
</td>
    <tr><td class="param">uint</td><td><td>flags</td><td>
Exception flags.
</td>
    <tr><td class="param">uint</td><td><td>handlerEnd</td><td>
Ptr to one past the end.
</td>
    <tr><td class="param">uint</td><td><td>handlerStart</td><td>
Ptr to start of catch/finally block.
</td>
    <tr><td class="param">uint</td><td><td>numBlocks</td><td>
Count of blocks opened before the try block.
</td>
    <tr><td class="param">uint</td><td><td>numStack</td><td>
Count of stack slots pushed before the try block.
</td>
    <tr><td class="param">uint</td><td><td>tryEnd</td><td>
Ptr to one past the end.
</td>
    <tr><td class="param">uint</td><td><td>tryStart</td><td>
Ptr to start of try block.
</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
  </div>
</div>
<a name="struct_ejs_hash"></a>
<div class="api">
  <div class="prototype">EjsHash</div>
  <div class="apiDetail">
<p>Property hash linkage.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int *</td><td><td>buckets</td><td>
Hash buckets and head of link chains.
</td>
    <tr><td class="param">int</td><td><td>size</td><td>
Size of hash.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="struct_ejs_helpers"></a>
<div class="api">
  <div class="prototype">EjsHelpers</div>
  <div class="apiDetail">
<p>Allocation and Type Helpers.</p>
    <dl><dt><b>Description</b>:</dt><dd>The type helpers interface defines the set of primitive operations a type must support to interact with the virtual machine.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
  </div>
</div>
<a name="struct_ejs_intern"></a>
<div class="api">
  <div class="prototype">EjsIntern</div>
  <div class="apiDetail">
<p>Interned string hash shared over all interpreters.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">uint64</td><td><td>accesses</td><td>
NUmber of accesses to string.
</td>
    <tr><td class="param">struct EjsString *</td><td><td>buckets</td><td>
Hash buckets and references to link chains of strings (unicode).
</td>
    <tr><td class="param">int</td><td><td>count</td><td>
Count of entries.
</td>
    <tr><td class="param">uint64</td><td><td>reuse</td><td>
Reuse counter.
</td>
    <tr><td class="param">int</td><td><td>size</td><td>
Size of hash.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="struct_ejs_line"></a>
<div class="api">
  <div class="prototype">EjsLine</div>
  <div class="apiDetail">
<p>Symbolic debugging storage for source code in module files.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>offset</td><td>
Optional PC offsets of each line in function.
</td>
    <tr><td class="param">wchar *</td><td><td>source</td><td>
Program source code. 
Format: path line: code.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="struct_ejs_lookup"></a>
<div class="api">
  <div class="prototype">EjsLookup</div>
  <div class="apiDetail">
<p>Lookup State.</p>
    <dl><dt><b>Description</b>:</dt><dd>Location information returned when looking up properties.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>bind</td><td>
Whether to bind to this lookup.
</td>
    <tr><td class="param">uint</td><td><td>instanceProperty</td><td>
Property is an instance property.
</td>
    <tr><td class="param">struct EjsName</td><td><td>name</td><td>
Name and namespace used to find the property.
</td>
    <tr><td class="param">uint</td><td><td>nthBase</td><td>
Property on Nth super type <ndash/> count from the object.
</td>
    <tr><td class="param">uint</td><td><td>nthBlock</td><td>
Property on Nth block in the scope chain <ndash/> count from the end.
</td>
    <tr><td class="param">EjsAny *</td><td><td>obj</td><td>
Final object / Type containing the variable.
</td>
    <tr><td class="param">EjsAny *</td><td><td>originalObj</td><td>
Original object used for the search.
</td>
    <tr><td class="param">uint</td><td><td>ownerIsType</td><td>
Original object owning the property is a type.
</td>
    <tr><td class="param">EjsAny *</td><td><td>ref</td><td>
Actual property reference.
</td>
    <tr><td class="param">int</td><td><td>slotNum</td><td>
Final slot in obj containing the variable reference.
</td>
    <tr><td class="param">struct <a class="ref" href="#struct_ejs_trait">EjsTrait</a> *</td><td><td>trait</td><td>
Property trait describing the property.
</td>
    <tr><td class="param">EjsType *</td><td><td>type</td><td>
Type containing property (if on a prototype obj).
</td>
    <tr><td class="param">uint</td><td><td>useThis</td><td>
Property accessible via &quot;this.&quot;.
</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
  </div>
</div>
<a name="struct_ejs_properties"></a>
<div class="api">
  <div class="prototype">EjsProperties</div>
  <div class="apiDetail">
<p>Object properties.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param"><a class="ref" href="#struct_ejs_hash">EjsHash</a> *</td><td><td>hash</td><td>
Hash buckets and head of link chains.
</td>
    <tr><td class="param">int</td><td><td>size</td><td>
Current size of slots[] in elements.
</td>
    <tr><td class="param">struct <a class="ref" href="#struct_ejs_slot">EjsSlot</a></td><td><td>slots[ARRAY_FLEX]</td><td>
Vector of slots containing property references.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="struct_ejs_service"></a>
<div class="api">
  <div class="prototype">EjsService</div>
  <div class="apiDetail">
<p>Ejscript Service structure.</p>
    <dl><dt><b>Description</b>:</dt><dd>The Ejscript service manages the overall language runtime. It is the factory that creates interpreter instances via <a class="ref" href="#group___ejs_1ga98a567fe16481c6bf5368749d831ae77">ejsCreateVM</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param"><a class="ref" href="#struct_ejs_helpers">EjsHelpers</a></td><td><td>blockHelpers</td><td>
Default EjsBlock helpers.
</td>
    <tr><td class="param">uint</td><td><td>dontExit</td><td>
Prevent App.exit() from exiting.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_spin" external="mpr.dtags">MprSpin</a> *</td><td><td>dtoaSpin[2]</td><td>
Dtoa thread synchronization.
</td>
    <tr><td class="param">Http *</td><td><td>http</td><td>
Http service.
</td>
    <tr><td class="param">EjsPot *</td><td><td>immutable</td><td>
Immutable types and special values.
</td>
    <tr><td class="param">uint</td><td><td>immutableInitialized</td><td>
Immutable types are initialized.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_intern">EjsIntern</a> *</td><td><td>intern</td><td>
Interned Unicode string hash - shared over all interps.
</td>
    <tr><td class="param">uint</td><td><td>logging</td><td>
Using <ndash/>log.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Multithread locking.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>nativeModules</td><td>
Set of loaded native modules.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_helpers">EjsHelpers</a></td><td><td>objHelpers</td><td>
Default EjsObj helpers.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_helpers">EjsHelpers</a></td><td><td>potHelpers</td><td>
Default EjsPot helpers.
</td>
    <tr><td class="param">uint</td><td><td>seqno</td><td>
Interp sequence numbers.
</td>
    <tr><td class="param">MprList *</td><td><td>vmlist</td><td>
List of all VM interpreters.
</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
  </div>
</div>
<a name="struct_ejs_slot"></a>
<div class="api">
  <div class="prototype">EjsSlot</div>
  <div class="apiDetail">
<p>Property slot structure.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>hashChain</td><td>
Next property in hash chain.
</td>
    <tr><td class="param">EjsName</td><td><td>qname</td><td>
Property name.
</td>
    <tr><td class="param">EjsAny *</td><td><td>ref</td><td>
Property reference.
</td>
    <tr><td class="param"><a class="ref" href="#struct_ejs_trait">EjsTrait</a></td><td><td>trait</td><td>
Property descriptor traits.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="struct_ejs_state"></a>
<div class="api">
  <div class="prototype">EjsState</div>
  <div class="apiDetail">
<p>VM Evaluation state.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">struct EjsBlock *</td><td><td>bp</td><td>
Current block pointer.
</td>
    <tr><td class="param">struct EjsFrame *</td><td><td>fp</td><td>
Current Frame function pointer.
</td>
    <tr><td class="param">struct EjsNamespace *</td><td><td>internal</td><td>
Current internal namespace.
</td>
    <tr><td class="param">uint</td><td><td>paused</td><td>
Garbage collection paused.
</td>
    <tr><td class="param">struct <a class="ref" href="#struct_ejs_state">EjsState</a> *</td><td><td>prev</td><td>
Previous state.
</td>
    <tr><td class="param">EjsObj **</td><td><td>stack</td><td>
Top of stack (points to the last element pushed).
</td>
    <tr><td class="param">EjsObj **</td><td><td>stackBase</td><td>
Pointer to start of stack mem.
</td>
    <tr><td class="param">ssize</td><td><td>stackSize</td><td>
Stack size.
</td>
    <tr><td class="param">EjsObj *</td><td><td>t1</td><td>
Temp one for GC.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="struct_ejs_trait"></a>
<div class="api">
  <div class="prototype">EjsTrait</div>
  <div class="apiDetail">
<p>Property traits.</p>
    <dl><dt><b>Description</b>:</dt><dd>Property traits describe the type and access attributes of a property. The Trait structure is used by EjsBlock to describe the attributes of properties defined within a block. Note: These traits apply to a property definition and not to the referenced object. ie. two property definitions may have different traits but will refer to the same object.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>attributes</td><td>
Modifier attributes.
</td>
    <tr><td class="param">struct EjsType *</td><td><td>type</td><td>
Property type (prototype).
</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
  </div>
</div>
<a name="struct_ejs_xml_tag_state"></a>
<div class="api">
  <div class="prototype">EjsXmlTagState</div>
  <div class="apiDetail">
<p>Xml tag state.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">EjsObj *</td><td><td>attributes</td><td>
List of attributes.
</td>
    <tr><td class="param">EjsObj *</td><td><td>comments</td><td>
List of comments.
</td>
    <tr><td class="param">struct EjsXML *</td><td><td>obj</td><td>
Current object.
</td>
    </table></dd></dl>
  </div>
</div>
